Comment # 4 on bug 105317 from
Created attachment 138471 [details]
Shader runner link test

I've distilled one problem in the attached shader runner test. Seems we have
another unrolling bug somewhere in the GLSL IR unrolling pass.

We end up with the following:

FRAG
DCL OUT[0], COLOR
DCL TEMP[0..3], LOCAL
IMM[0] UINT32 {0, 4294967295, 0, 0}
IMM[1] INT32 {0, 1, 0, 0}
IMM[2] FLT32 {    1.0000,     0.0000,     0.0000,     0.0000}
  0: MOV TEMP[0].x, IMM[0].xxxx
  1: MOV TEMP[1].x, IMM[1].xxxx
  2: BGNLOOP
  3:   USEQ TEMP[2].x, TEMP[1].xxxx, IMM[1].yyyy
  4:   UIF TEMP[2].xxxx
  5:     BRK
  6:   ENDIF
  7:   MOV TEMP[3], IMM[2].xxxx
  8:   MOV TEMP[0].x, IMM[0].yyyy
  9:   BRK
 10:   UADD TEMP[1].x, TEMP[1].xxxx, IMM[1].yyyy
 11: ENDLOOP
 12: MOV OUT[0], IMM[2].xxxx
 13: END

Terminator found in the middle of a basic block!
label %endif6
LLVM ERROR: Broken function found, compilation aborted!


You are receiving this mail because: