Bug 50312

Summary: [r600g+llvm] Piglit failures with "EE r600_asm.c:119 r600_bytecode_get_num_operands - Need instruction operand number for 0x77."
Product: Mesa Reporter: Kai <kai>
Component: Mesa coreAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: tstellar
Version: gitKeywords: regression
Hardware: x86-64 (AMD64)   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: [PATCH] radeon/llvm: fix opcode for RECIP_UINT_r600

Description Kai 2012-05-24 09:13:51 UTC
I've just compiled r600g with the LLVM shader compiler and the Piglit results look similar to the recent run without LLVM backend (2012-05-20/Git: 239792fb) except that a ton of GLSL 1.10 and 1.30 tests now fail with:
> EE r600_asm.c:119 r600_bytecode_get_num_operands - Need instruction operand number for 0x77.

The tests failing with the previous error are:
spec/glsl-1.10/execution/built-in-functions/fs-op-div-int-int
spec/glsl-1.10/execution/built-in-functions/fs-op-div-int-ivec2
spec/glsl-1.10/execution/built-in-functions/fs-op-div-int-ivec3 (warning only)
spec/glsl-1.10/execution/built-in-functions/fs-op-div-int-ivec4 (warning only)
spec/glsl-1.10/execution/built-in-functions/fs-op-div-ivec2-int
spec/glsl-1.10/execution/built-in-functions/fs-op-div-ivec2-ivec2 (warning only)
spec/glsl-1.10/execution/built-in-functions/fs-op-div-ivec3-int
spec/glsl-1.10/execution/built-in-functions/fs-op-div-ivec3-ivec3 (warning only)
spec/glsl-1.10/execution/built-in-functions/fs-op-div-ivec4-int
spec/glsl-1.10/execution/built-in-functions/fs-op-div-ivec4-ivec4 (warning only)
spec/glsl-1.10/execution/built-in-functions/vs-op-div-int-int
spec/glsl-1.10/execution/built-in-functions/vs-op-div-int-ivec2
spec/glsl-1.10/execution/built-in-functions/vs-op-div-int-ivec3 (warning only)
spec/glsl-1.10/execution/built-in-functions/vs-op-div-int-ivec4 (warning only)
spec/glsl-1.10/execution/built-in-functions/vs-op-div-ivec2-int
spec/glsl-1.10/execution/built-in-functions/vs-op-div-ivec2-ivec2 (warning only)
spec/glsl-1.10/execution/built-in-functions/vs-op-div-ivec3-int
spec/glsl-1.10/execution/built-in-functions/vs-op-div-ivec3-ivec3 (warning only)
spec/glsl-1.10/execution/built-in-functions/vs-op-div-ivec4-int
spec/glsl-1.10/execution/built-in-functions/vs-op-div-ivec4-ivec4 (warning only)
spec/glsl-1.30/execution/built-in-functions/fs-op-mod-int-int
spec/glsl-1.30/execution/built-in-functions/fs-op-mod-int-ivec2
spec/glsl-1.30/execution/built-in-functions/fs-op-mod-int-ivec3 (warning only)
spec/glsl-1.30/execution/built-in-functions/fs-op-mod-int-ivec4 (warning only)
spec/glsl-1.30/execution/built-in-functions/fs-op-mod-ivec2-int
spec/glsl-1.30/execution/built-in-functions/fs-op-mod-ivec2-ivec2 (warning only)
spec/glsl-1.30/execution/built-in-functions/fs-op-mod-ivec3-int
spec/glsl-1.30/execution/built-in-functions/fs-op-mod-ivec3-ivec3 (warning only)
spec/glsl-1.30/execution/built-in-functions/fs-op-mod-ivec4-int
spec/glsl-1.30/execution/built-in-functions/fs-op-mod-ivec4-ivec4 (warning only)
spec/glsl-1.30/execution/built-in-functions/vs-op-mod-int-int
spec/glsl-1.30/execution/built-in-functions/vs-op-mod-int-ivec2
spec/glsl-1.30/execution/built-in-functions/vs-op-mod-int-ivec3 (warning only)
spec/glsl-1.30/execution/built-in-functions/vs-op-mod-int-ivec4 (warning only)
spec/glsl-1.30/execution/built-in-functions/vs-op-mod-ivec2-int
spec/glsl-1.30/execution/built-in-functions/vs-op-mod-ivec2-ivec2 (warning only)
spec/glsl-1.30/execution/built-in-functions/vs-op-mod-ivec3-int
spec/glsl-1.30/execution/built-in-functions/vs-op-mod-ivec3-ivec3 (warning only)
spec/glsl-1.30/execution/built-in-functions/vs-op-mod-ivec4-int
spec/glsl-1.30/execution/built-in-functions/vs-op-mod-ivec4-ivec4 (warning only)

Stack:
Kernel: 3.4
libdrm: 2.4.33-1
Mesa: Git/0f6a3a7d
X.org: 1.12.1-2
LLVM: 3.1-1

Hardware: 0x9553
Comment 1 Kai 2012-05-24 10:44:02 UTC
Applying attachment 62060 [details] [review] fixes this bug though all tests that weren't just warnings are still failing, but the output for the failure is different. And those test worked with a non-LLVM backend build of git/239792fb. Still that is probably a different bug?
Comment 2 Vadim Girlin 2012-05-24 11:00:37 UTC
Created attachment 62064 [details] [review]
[PATCH] radeon/llvm: fix opcode for RECIP_UINT_r600

Does this patch help?
Comment 3 Kai 2012-05-24 11:44:58 UTC
(In reply to comment #2)
> [PATCH] radeon/llvm: fix opcode for RECIP_UINT_r600
> 
> Does this patch help?

Yes!

You can have a "Tested-by: Kai Wasserbäch <kai@dev.carbon-project.org>" for both patches (attachment 62060 [details] [review] and attachment 62064 [details] [review]).
Comment 4 Tom Stellard 2012-06-03 11:17:48 UTC
Fixed in git commit 029776753b69dc6054cabd8c2cc07c981ab20616

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.