Bug 54727

Summary: R600_LLVM, draw: LLVM ERROR: Cannot select: v4f32 = insert_vector_elt
Product: Mesa Reporter: Török Edwin <edwin+bugs>
Component: Drivers/Gallium/r600Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Török Edwin 2012-09-10 11:29:23 UTC
With r600 llvm compiler enabled a game under wine crashes at:

glDrawElementsBaseVertex(mode = GL_TRIANGLES, count = 36, type = GL_UNSIGNED_SHORT, indices = NULL, basevertex = 0)

With R600_LLVM=0 it works. Although the crash is on draw, DRAW_USE_LLVM=0 still crashes.

I have an APItrace, not sure if I can attach it here though (game is not open source), but I can try patches to see if its fixed.

LLVM ERROR: Cannot select: 0x7faa00466c80: v4f32 = insert_vector_elt 0x7faa00464e50, 0x7faa00466b80, 0x7faa0045f680 [ORD=43] [ID=101]
  0x7faa00464e50: v4f32 = llvm.AMDGPU.tex 0x7faa00464d50, 0x7faa00467080, 0x7faa0045f080, 0x7faa0045f480 [ORD=33] [ID=100]
    0x7faa00464d50: i32 = TargetConstant<1932> [ORD=33] [ID=25]
    0x7faa00467080: v4f32 = insert_vector_elt 0x7faa00466980, 0x7faa00464850, 0x7faa0045fc80 [ID=99]
      0x7faa00466980: v4f32 = insert_vector_elt 0x7faa00466a80, 0x7faa00464850, 0x7faa004613c0 [ID=97]
        0x7faa00466a80: v4f32 = insert_vector_elt 0x7faa00465560, 0x7faa00464850, 0x7faa004617c0 [ID=95]
          0x7faa00465560: v4f32 = VBUILD 0x7faa00464750 [ID=93]
            0x7faa00464750: f32 = MAD 0x7faa004639e0, 0x7faa00463ce0, 0x7faa00463ee0 [ID=89]
              0x7faa004639e0: f32 = fadd 0x7faa004636e0, 0x7faa004638e0 [ORD=20] [ID=82]
                0x7faa004636e0: f32 = MAD 0x7faa0045f380, 0x7faa00462cd0, 0x7faa00462ed0 [ID=75]
                  0x7faa0045f380: f32 = Register %vreg17 [ID=51]
                  0x7faa00462cd0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa00462bd0 [ORD=13] [ID=54]


                  0x7faa00462ed0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa00462dd0 [ORD=14] [ID=55]


                0x7faa004638e0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa004637e0 [ORD=19] [ID=58]
                  0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
                  0x7faa004637e0: i32 = Constant<68> [ORD=19] [ID=20]
              0x7faa00463ce0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa00463be0 [ORD=23] [ID=59]
                0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
                0x7faa00463be0: i32 = Constant<56> [ORD=23] [ID=21]
              0x7faa00463ee0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa00463de0 [ORD=24] [ID=60]
                0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
                0x7faa00463de0: i32 = Constant<58> [ORD=24] [ID=22]
          0x7faa00464850: f32 = MAD 0x7faa00463ae0, 0x7faa00464450, 0x7faa00464650 [ID=90]
            0x7faa00463ae0: f32 = fadd 0x7faa00468ba0, 0x7faa004638e0 [ORD=22] [ID=83]
              0x7faa00468ba0: f32 = MAD 0x7faa0045f880, 0x7faa004633e0, 0x7faa004635e0 [ID=76]
                0x7faa0045f880: f32 = Register %vreg16 [ID=50]
                0x7faa004633e0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa004632e0 [ORD=16] [ID=56]
                  0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
                  0x7faa004632e0: i32 = Constant<65> [ORD=16] [ID=18]
                0x7faa004635e0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa004634e0 [ORD=17] [ID=57]
                  0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
                  0x7faa004634e0: i32 = Constant<67> [ORD=17] [ID=19]
              0x7faa004638e0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa004637e0 [ORD=19] [ID=58]
                0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
                0x7faa004637e0: i32 = Constant<68> [ORD=19] [ID=20]
            0x7faa00464450: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa00464350 [ORD=26] [ID=61]
              0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
              0x7faa00464350: i32 = Constant<57> [ORD=26] [ID=23]
            0x7faa00464650: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa00464550 [ORD=27] [ID=62]
              0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
              0x7faa00464550: i32 = Constant<59> [ORD=27] [ID=24]
          0x7faa004617c0: i32 = Constant<7> [ORD=8] [ID=10]
        0x7faa00464850: f32 = MAD 0x7faa00463ae0, 0x7faa00464450, 0x7faa00464650 [ID=90]
          0x7faa00463ae0: f32 = fadd 0x7faa00468ba0, 0x7faa004638e0 [ORD=22] [ID=83]
            0x7faa00468ba0: f32 = MAD 0x7faa0045f880, 0x7faa004633e0, 0x7faa004635e0 [ID=76]
              0x7faa0045f880: f32 = Register %vreg16 [ID=50]
              0x7faa004633e0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa004632e0 [ORD=16] [ID=56]
                0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
                0x7faa004632e0: i32 = Constant<65> [ORD=16] [ID=18]
              0x7faa004635e0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa004634e0 [ORD=17] [ID=57]
                0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
                0x7faa004634e0: i32 = Constant<67> [ORD=17] [ID=19]
            0x7faa004638e0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa004637e0 [ORD=19] [ID=58]
              0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
              0x7faa004637e0: i32 = Constant<68> [ORD=19] [ID=20]
          0x7faa00464450: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa00464350 [ORD=26] [ID=61]
            0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
            0x7faa00464350: i32 = Constant<57> [ORD=26] [ID=23]
          0x7faa00464650: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa00464550 [ORD=27] [ID=62]
            0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
            0x7faa00464550: i32 = Constant<59> [ORD=27] [ID=24]
        0x7faa004613c0: i32 = Constant<6> [ORD=7] [ID=8]
      0x7faa00464850: f32 = MAD 0x7faa00463ae0, 0x7faa00464450, 0x7faa00464650 [ID=90]
        0x7faa00463ae0: f32 = fadd 0x7faa00468ba0, 0x7faa004638e0 [ORD=22] [ID=83]
          0x7faa00468ba0: f32 = MAD 0x7faa0045f880, 0x7faa004633e0, 0x7faa004635e0 [ID=76]
            0x7faa0045f880: f32 = Register %vreg16 [ID=50]
            0x7faa004633e0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa004632e0 [ORD=16] [ID=56]
              0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
              0x7faa004632e0: i32 = Constant<65> [ORD=16] [ID=18]
            0x7faa004635e0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa004634e0 [ORD=17] [ID=57]
              0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
              0x7faa004634e0: i32 = Constant<67> [ORD=17] [ID=19]
          0x7faa004638e0: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa004637e0 [ORD=19] [ID=58]
            0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
            0x7faa004637e0: i32 = Constant<68> [ORD=19] [ID=20]
        0x7faa00464450: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa00464350 [ORD=26] [ID=61]
          0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
          0x7faa00464350: i32 = Constant<57> [ORD=26] [ID=23]
        0x7faa00464650: f32 = llvm.AMDGPU.load.const 0x7faa00462ad0, 0x7faa00464550 [ORD=27] [ID=62]
          0x7faa00462ad0: i32 = TargetConstant<1914> [ORD=13] [ID=15]
          0x7faa00464550: i32 = Constant<59> [ORD=27] [ID=24]
      0x7faa0045fc80: i32 = Constant<5> [ORD=6] [ID=6]
    0x7faa0045f080: i32 = Constant<0> [ORD=1] [ID=1]
    0x7faa0045f480: i32 = Constant<2> [ORD=3] [ID=3]
  0x7faa00466b80: f32 = ConstantFP<0.000000e+00> [ORD=43] [ID=26]
  0x7faa0045f680: i32 = Constant<3> [ORD=4] [ID=4]


OpenGL renderer string: Gallium 0.4 on AMD RV730
OpenGL version string: 3.0 Mesa 9.0-devel (git-10a96f4)
OpenGL shading language version string: 1.30
Comment 1 Török Edwin 2012-09-18 18:01:13 UTC
Just tried and this works in 175fdd7b86cce4e1fc945058fa2223b77edbf8a6 now.
Thanks for fixing it.

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.