https://bugs.freedesktop.org/show_bug.cgi?id=105317
--- Comment #4 from Timothy Arceri t_arceri@yahoo.com.au --- Created attachment 138471 --> https://bugs.freedesktop.org/attachment.cgi?id=138471&action=edit 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!