FRAG DCL SV[0], POSITION DCL OUT[0], COLOR DCL SAMP[0] DCL SAMP[1] DCL SVIEW[0], 2D, FLOAT DCL SVIEW[1], 2D, FLOAT DCL CONST[0][2..3] DCL CONST[0][0..1] DCL TEMP[0] DCL TEMP[1..318], LOCAL IMM[0] FLT32 { 0,0000, -0,5000, 1,0000, 1000000000,0000} IMM[1] INT32 {0, 32, 2, 8} IMM[2] FLT32 { -1,0000, 2,0000, 0,0200, 999999984306749440,0000} IMM[3] UINT32 {0, 4294967295, 0, 0} IMM[4] INT32 {67, 1, 46, 0} IMM[5] INT32 {83, 0, 82, 0} IMM[6] FLT32 { 0,2500, -0,0121, 0,0537, -0,1174} IMM[7] FLT32 { 0,1939, -0,3327, 1,0000, -2,0000} IMM[8] FLT32 { 1,5708, 0,0000, 0,0000, 0,0000} 0: MOV TEMP[0], SV[0] 1: MAD TEMP[0].y, SV[0], CONST[0][3].xxxx, CONST[0][3].yyyy 2: MOV OUT[0], IMM[0].xxxx 3: MOV TEMP[1].xy, TEMP[0].xyxx 4: USEQ TEMP[2].x, CONST[0][2].xxxx, IMM[1].xxxx 5: UIF TEMP[2].xxxx 6: ADD TEMP[3], TEMP[3], -TEMP[3] 7: ELSE 8: ADD TEMP[1].xy, TEMP[0].xyyy, IMM[0].yyyy 9: F2I TEMP[4].xy, TEMP[1].xyyy 10: MOV TEMP[5].xy, TEMP[4].xyyy 11: TXF_LZ TEMP[6], TEMP[5], SAMP[0], 2D 12: MOV TEMP[7], TEMP[6] 13: MOV TEMP[3], TEMP[6] 14: RCP TEMP[8].x, CONST[0][0].yyyy 15: MUL TEMP[9].xy, CONST[0][1].xyyy, TEMP[8].xxxx 16: MOV TEMP[10].xy, IMM[1].yzzz 17: TXF_LZ TEMP[11], TEMP[10], SAMP[1], 2D 18: MOV TEMP[12], TEMP[11] 19: FSLT TEMP[13].x, IMM[0].xxxx, TEMP[11].xxxx 20: UIF TEMP[13].xxxx 21: FSEQ TEMP[14], TEMP[1].xyyy, IMM[0].xxxx 22: AND TEMP[15].x, TEMP[14].xxxx, TEMP[14].yyyy 23: FSLT TEMP[16].x, IMM[0].xxxx, CONST[0][1].zzzz 24: AND TEMP[17].x, TEMP[16].xxxx, IMM[0].zzzz 25: MUL TEMP[18].x, TEMP[6].yyyy, TEMP[17].xxxx 26: UCMP TEMP[3].y, TEMP[15].xxxx, TEMP[18].xxxx, TEMP[6] 27: FSLT TEMP[19].x, IMM[0].xxxx, CONST[0][1].zzzz 28: UIF TEMP[19].xxxx 29: FSEQ TEMP[20], TEMP[1].xyyy, IMM[0].xxxx 30: AND TEMP[21].x, TEMP[20].xxxx, TEMP[20].yyyy 31: UIF TEMP[21].xxxx 32: MOV TEMP[22].xy, IMM[1].xxxx 33: TXF_LZ TEMP[23], TEMP[22], SAMP[0], 2D 34: MOV TEMP[24], TEMP[23] 35: FSEQ TEMP[25].x, TEMP[23].yyyy, IMM[0].xxxx 36: UIF TEMP[25].xxxx 37: MOV TEMP[26].x, IMM[0].zzzz 38: RCP TEMP[27].x, CONST[0][0].xxxx 39: FLR TEMP[28].x, TEMP[27].xxxx 40: MUL TEMP[29].x, CONST[0][0].xxxx, TEMP[28].xxxx 41: ADD TEMP[30].x, IMM[0].zzzz, -TEMP[29].xxxx 42: RCP TEMP[31].x, CONST[0][0].xxxx 43: FLR TEMP[32].x, TEMP[31].xxxx 44: MOV TEMP[30].y, TEMP[32].xxxx 45: F2I TEMP[33].xy, TEMP[30].xyyy 46: MOV TEMP[34].xy, TEMP[33].xyyy 47: TXF_LZ TEMP[35], TEMP[34], SAMP[0], 2D 48: MOV TEMP[36], TEMP[35] 49: MOV TEMP[37].x, IMM[0].wwww 50: MOV TEMP[38].x, IMM[0].zzzz 51: MOV TEMP[39].x, IMM[0].zzzz 52: MOV TEMP[40].x, IMM[2].xxxx 53: MOV TEMP[41].x, IMM[2].yyyy 54: BGNLOOP 55: MOV TEMP[42].xy, IMM[1].xxxx 56: TXF_LZ TEMP[43], TEMP[42], SAMP[0], 2D 57: MOV TEMP[44], TEMP[43] 58: FSGE TEMP[45].x, TEMP[41].xxxx, TEMP[43].xxxx 59: UIF TEMP[45].xxxx 60: BRK 61: ENDIF 62: RCP TEMP[46].x, CONST[0][0].xxxx 63: MUL TEMP[47].x, TEMP[41].xxxx, TEMP[46].xxxx 64: FLR TEMP[48].x, TEMP[47].xxxx 65: MUL TEMP[49].x, CONST[0][0].xxxx, TEMP[48].xxxx 66: ADD TEMP[50].x, TEMP[41].xxxx, -TEMP[49].xxxx 67: RCP TEMP[51].x, CONST[0][0].xxxx 68: MUL TEMP[52].x, TEMP[41].xxxx, TEMP[51].xxxx 69: FLR TEMP[53].x, TEMP[52].xxxx 70: MOV TEMP[50].y, TEMP[53].xxxx 71: F2I TEMP[54].xy, TEMP[50].xyyy 72: MOV TEMP[55].xy, TEMP[54].xyyy 73: TXF_LZ TEMP[56], TEMP[55], SAMP[0], 2D 74: MOV TEMP[57], TEMP[56] 75: FSLT TEMP[58].x, IMM[0].xxxx, TEMP[36].zzzz 76: FSLT TEMP[59].x, IMM[0].xxxx, TEMP[56].zzzz 77: AND TEMP[60].x, TEMP[58].xxxx, TEMP[59].xxxx 78: UIF TEMP[60].xxxx 79: ADD TEMP[61].xy, TEMP[9].xyyy, -TEMP[36].xyyy 80: ADD TEMP[62].xy, TEMP[56].xyyy, -TEMP[36].xyyy 81: DP2 TEMP[63].x, TEMP[61].xyyy, TEMP[62].xyyy 82: DP2 TEMP[64].x, TEMP[62].xyyy, TEMP[62].xyyy 83: RCP TEMP[65].x, TEMP[64].xxxx 84: MUL TEMP[66].x, TEMP[63].xxxx, TEMP[65].xxxx 85: MOV_SAT TEMP[67].x, TEMP[66].xxxx 86: MUL TEMP[68].xy, TEMP[62].xyyy, TEMP[67].xxxx 87: ADD TEMP[69].xy, TEMP[61].xyyy, -TEMP[68].xyyy 88: DP2 TEMP[70].x, TEMP[69].xyyy, TEMP[69].xyyy 89: SQRT TEMP[71].x, TEMP[70].xxxx 90: FSLT TEMP[72].x, TEMP[71].xxxx, TEMP[37].xxxx 91: UCMP TEMP[37].x, TEMP[72].xxxx, TEMP[71].xxxx, TEMP[37] 92: UCMP TEMP[40].x, TEMP[72].xxxx, TEMP[39].xxxx, TEMP[40] 93: ENDIF 94: MOV TEMP[36], TEMP[56] 95: FSLT TEMP[73].x, TEMP[56].zzzz, IMM[0].xxxx 96: ADD TEMP[74].x, TEMP[38].xxxx, IMM[0].zzzz 97: UCMP TEMP[38].x, TEMP[73].xxxx, TEMP[74].xxxx, TEMP[38] 98: ADD TEMP[75].x, TEMP[41].xxxx, IMM[0].zzzz 99: UCMP TEMP[39].x, TEMP[73].xxxx, TEMP[75].xxxx, TEMP[39] 100: ADD TEMP[41].x, TEMP[41].xxxx, IMM[0].zzzz 101: ENDLOOP 102: FSLT TEMP[76].x, TEMP[37].xxxx, IMM[2].zzzz 103: ADD TEMP[77].x, TEMP[40].xxxx, IMM[0].zzzz 104: UCMP TEMP[78].x, TEMP[76].xxxx, TEMP[77].xxxx, TEMP[78] 105: NOT TEMP[79].x, TEMP[76].xxxx 106: UCMP TEMP[78].x, TEMP[79].xxxx, IMM[0].xxxx, TEMP[78] 107: MOV TEMP[3].y, TEMP[78].xxxx 108: ENDIF 109: MOV TEMP[3].zw, TEMP[9].yyxy 110: ENDIF 111: MOV TEMP[80].xy, IMM[1].xxxx 112: TXF_LZ TEMP[81], TEMP[80], SAMP[0], 2D 113: ADD TEMP[82].x, TEMP[81].yyyy, IMM[2].xxxx 114: MOV TEMP[83].xy, IMM[1].xxxx 115: TXF_LZ TEMP[84], TEMP[83], SAMP[0], 2D 116: MOV TEMP[85], TEMP[84] 117: MAD TEMP[86].x, CONST[0][0].xxxx, TEMP[1].yyyy, TEMP[1].xxxx 118: MOV TEMP[87].x, IMM[0].xxxx 119: FSGE TEMP[88].x, TEMP[82].xxxx, IMM[0].xxxx 120: UIF TEMP[88].xxxx 121: MOV TEMP[89].xy, IMM[0].xxxx 122: MOV TEMP[87].x, TEMP[82].xxxx 123: BGNLOOP 124: FSLT TEMP[90].x, TEMP[87].xxxx, TEMP[85].xxxx 125: UIF TEMP[90].xxxx 126: RCP TEMP[91].x, CONST[0][0].xxxx 127: MUL TEMP[92].x, TEMP[87].xxxx, TEMP[91].xxxx 128: FLR TEMP[93].x, TEMP[92].xxxx 129: MUL TEMP[94].x, CONST[0][0].xxxx, TEMP[93].xxxx 130: ADD TEMP[95].x, TEMP[87].xxxx, -TEMP[94].xxxx 131: RCP TEMP[96].x, CONST[0][0].xxxx 132: MUL TEMP[97].x, TEMP[87].xxxx, TEMP[96].xxxx 133: FLR TEMP[98].x, TEMP[97].xxxx 134: MOV TEMP[95].y, TEMP[98].xxxx 135: F2I TEMP[99].xy, TEMP[95].xyyy 136: MOV TEMP[100].xy, TEMP[99].xyyy 137: TXF_LZ TEMP[101], TEMP[100], SAMP[0], 2D 138: FSLT TEMP[102].x, IMM[0].xxxx, TEMP[101].zzzz 139: ELSE 140: MOV TEMP[102].x, IMM[3].xxxx 141: ENDIF 142: NOT TEMP[103].x, TEMP[102].xxxx 143: UIF TEMP[103].xxxx 144: BRK 145: ENDIF 146: RCP TEMP[104].x, CONST[0][0].xxxx 147: MUL TEMP[105].x, TEMP[87].xxxx, TEMP[104].xxxx 148: FLR TEMP[106].x, TEMP[105].xxxx 149: MUL TEMP[107].x, CONST[0][0].xxxx, TEMP[106].xxxx 150: ADD TEMP[108].x, TEMP[87].xxxx, -TEMP[107].xxxx 151: RCP TEMP[109].x, CONST[0][0].xxxx 152: MUL TEMP[110].x, TEMP[87].xxxx, TEMP[109].xxxx 153: FLR TEMP[111].x, TEMP[110].xxxx 154: MOV TEMP[108].y, TEMP[111].xxxx 155: F2I TEMP[112].xy, TEMP[108].xyyy 156: MOV TEMP[113].xy, TEMP[112].xyyy 157: TXF_LZ TEMP[114], TEMP[113], SAMP[0], 2D 158: ADD TEMP[89].xy, TEMP[89].xyyy, TEMP[114].xyyy 159: ADD TEMP[87].x, TEMP[87].xxxx, IMM[0].zzzz 160: ENDLOOP 161: MOV TEMP[115].xy, IMM[4].xyyy 162: TXF_LZ TEMP[116].x, TEMP[115], SAMP[1], 2D 163: FSLT TEMP[117].x, IMM[0].xxxx, TEMP[116].xxxx 164: UIF TEMP[117].xxxx 165: ADD TEMP[87].x, TEMP[87].xxxx, IMM[0].zzzz 166: FSLT TEMP[118].x, TEMP[85].xxxx, TEMP[86].xxxx 167: ADD TEMP[119].x, TEMP[85].xxxx, TEMP[87].xxxx 168: ADD TEMP[120].x, TEMP[119].xxxx, -TEMP[82].xxxx 169: FSGE TEMP[121].x, TEMP[120].xxxx, TEMP[86].xxxx 170: AND TEMP[122].x, TEMP[118].xxxx, TEMP[121].xxxx 171: UIF TEMP[122].xxxx 172: ADD TEMP[123].x, TEMP[82].xxxx, TEMP[86].xxxx 173: ADD TEMP[124].x, TEMP[123].xxxx, -TEMP[85].xxxx 174: ADD TEMP[125].x, TEMP[124].xxxx, IMM[2].xxxx 175: RCP TEMP[126].x, CONST[0][0].xxxx 176: MUL TEMP[127].x, TEMP[125].xxxx, TEMP[126].xxxx 177: FLR TEMP[128].x, TEMP[127].xxxx 178: MUL TEMP[129].x, CONST[0][0].xxxx, TEMP[128].xxxx 179: ADD TEMP[130].x, TEMP[125].xxxx, -TEMP[129].xxxx 180: ADD TEMP[131].x, TEMP[82].xxxx, TEMP[86].xxxx 181: ADD TEMP[132].x, TEMP[131].xxxx, -TEMP[85].xxxx 182: ADD TEMP[133].x, TEMP[132].xxxx, IMM[2].xxxx 183: RCP TEMP[134].x, CONST[0][0].xxxx 184: MUL TEMP[135].x, TEMP[133].xxxx, TEMP[134].xxxx 185: FLR TEMP[136].x, TEMP[135].xxxx 186: MOV TEMP[130].y, TEMP[136].xxxx 187: F2I TEMP[137].xy, TEMP[130].xyyy 188: MOV TEMP[138].xy, TEMP[137].xyyy 189: TXF_LZ TEMP[139], TEMP[138], SAMP[0], 2D 190: MOV TEMP[3], TEMP[139] 191: ENDIF 192: FSEQ TEMP[140].xy, TEMP[1].xyyy, IMM[0].xxxx 193: AND TEMP[141].x, TEMP[140].xxxx, TEMP[140].yyyy 194: ADD TEMP[142].x, TEMP[87].xxxx, -TEMP[82].xxxx 195: ADD TEMP[143].x, TEMP[3].xxxx, TEMP[142].xxxx 196: UCMP TEMP[3].x, TEMP[141].xxxx, TEMP[143].xxxx, TEMP[3] 197: ELSE 198: FSNE TEMP[144].xy, TEMP[1].xyyy, IMM[0].xxxx 199: OR TEMP[145].x, TEMP[144].xxxx, TEMP[144].yyyy 200: FSLT TEMP[146].x, TEMP[86].xxxx, TEMP[82].xxxx 201: FSLT TEMP[147].x, TEMP[87].xxxx, TEMP[86].xxxx 202: OR TEMP[148].x, TEMP[146].xxxx, TEMP[147].xxxx 203: NOT TEMP[149].x, TEMP[148].xxxx 204: AND TEMP[150].x, TEMP[145].xxxx, TEMP[149].xxxx 205: UIF TEMP[150].xxxx 206: ADD TEMP[151].x, TEMP[87].xxxx, -TEMP[82].xxxx 207: RCP TEMP[152].x, TEMP[151].xxxx 208: MUL TEMP[89].xy, TEMP[89].xyyy, TEMP[152].xxxx 209: MOV TEMP[153].xy, IMM[1].xxxx 210: TXF_LZ TEMP[154].zw, TEMP[153], SAMP[0], 2D 211: MOV TEMP[155].xy, TEMP[154].zwzz 212: MOV TEMP[156].xy, IMM[1].wxxx 213: TXF_LZ TEMP[157].x, TEMP[156], SAMP[1], 2D 214: FSLT TEMP[158].x, IMM[0].xxxx, TEMP[157].xxxx 215: UIF TEMP[158].xxxx 216: MOV TEMP[159].x, IMM[3].yyyy 217: ELSE 218: MOV TEMP[160].xy, IMM[4].zwww 219: TXF_LZ TEMP[161].x, TEMP[160], SAMP[1], 2D 220: FSLT TEMP[159].x, IMM[0].xxxx, TEMP[161].xxxx 221: ENDIF 222: UIF TEMP[159].xxxx 223: MOV TEMP[3].xy, IMM[2].xxxx 224: ELSE 225: MOV TEMP[162].xy, IMM[5].xyyy 226: TXF_LZ TEMP[163].x, TEMP[162], SAMP[1], 2D 227: FSLT TEMP[164].x, IMM[0].xxxx, TEMP[163].xxxx 228: UIF TEMP[164].xxxx 229: ADD TEMP[165].xy, TEMP[3].xyyy, -TEMP[89].xyyy 230: ADD TEMP[166].xy, TEMP[9].xyyy, -TEMP[89].xyyy 231: MUL TEMP[167].xy, TEMP[165].xyyy, TEMP[166].xyyy 232: ADD TEMP[168].xy, TEMP[154].zwww, -TEMP[89].xyyy 233: RCP TEMP[169].x, TEMP[168].xxxx 234: RCP TEMP[169].y, TEMP[168].yyyy 235: MAD TEMP[3].xy, TEMP[167].xyyy, TEMP[169].xyyy, TEMP[89].xyyy 236: ELSE 237: MOV TEMP[170].xy, IMM[5].zyyy 238: TXF_LZ TEMP[171].x, TEMP[170], SAMP[1], 2D 239: FSLT TEMP[172].x, IMM[0].xxxx, TEMP[171].xxxx 240: UIF TEMP[172].xxxx 241: ADD TEMP[9].xy, TEMP[9].xyyy, -TEMP[89].xyyy 242: ADD TEMP[155].xy, TEMP[154].zwww, -TEMP[89].xyyy 243: FSGE TEMP[173].x, IMM[0].xxxx, TEMP[9].xxxx 244: MOV TEMP[174].x, |TEMP[9].xxxx| 245: UCMP TEMP[175].x, TEMP[173].xxxx, TEMP[174].xxxx, TEMP[9].yyyy 246: MOV TEMP[176].x, |TEMP[9].xxxx| 247: UCMP TEMP[177].x, TEMP[173].xxxx, TEMP[9].yyyy, TEMP[176].xxxx 248: MOV TEMP[178].x, |TEMP[177].xxxx| 249: FSGE TEMP[179].x, TEMP[178].xxxx, IMM[2].wwww 250: UCMP TEMP[180].x, TEMP[179].xxxx, IMM[6].xxxx, IMM[0].zzzz 251: MUL TEMP[181].x, TEMP[177].xxxx, TEMP[180].xxxx 252: RCP TEMP[182].x, TEMP[181].xxxx 253: MOV TEMP[183].x, |TEMP[9].xxxx| 254: MOV TEMP[184].x, |TEMP[9].yyyy| 255: FSEQ TEMP[185].x, TEMP[183].xxxx, TEMP[184].xxxx 256: MUL TEMP[186].x, TEMP[175].xxxx, TEMP[180].xxxx 257: MUL TEMP[187].x, TEMP[186].xxxx, TEMP[182].xxxx 258: MOV TEMP[188].x, |TEMP[187].xxxx| 259: UCMP TEMP[189].x, TEMP[185].xxxx, IMM[0].zzzz, TEMP[188].xxxx 260: MOV TEMP[190].x, |TEMP[189].xxxx| 261: MIN TEMP[191].x, TEMP[190].xxxx, IMM[0].zzzz 262: MOV TEMP[192].x, |TEMP[9].xxxx| 263: MOV TEMP[193].x, |TEMP[9].yyyy| 264: FSEQ TEMP[194].x, TEMP[192].xxxx, TEMP[193].xxxx 265: MUL TEMP[195].x, TEMP[175].xxxx, TEMP[180].xxxx 266: MUL TEMP[196].x, TEMP[195].xxxx, TEMP[182].xxxx 267: MOV TEMP[197].x, |TEMP[196].xxxx| 268: UCMP TEMP[198].x, TEMP[194].xxxx, IMM[0].zzzz, TEMP[197].xxxx 269: MOV TEMP[199].x, |TEMP[198].xxxx| 270: MAX TEMP[200].x, TEMP[199].xxxx, IMM[0].zzzz 271: RCP TEMP[201].x, TEMP[200].xxxx 272: MUL TEMP[202].x, TEMP[191].xxxx, TEMP[201].xxxx 273: MUL TEMP[203].x, TEMP[202].xxxx, TEMP[202].xxxx 274: MAD TEMP[204].x, IMM[6].yyyy, TEMP[203].xxxx, IMM[6].zzzz 275: MAD TEMP[205].x, TEMP[204].xxxx, TEMP[203].xxxx, IMM[6].wwww 276: MAD TEMP[206].x, TEMP[205].xxxx, TEMP[203].xxxx, IMM[7].xxxx 277: MAD TEMP[207].x, TEMP[206].xxxx, TEMP[203].xxxx, IMM[7].yyyy 278: MAD TEMP[208].x, TEMP[207].xxxx, TEMP[203].xxxx, IMM[7].zzzz 279: MUL TEMP[203].x, TEMP[208].xxxx, TEMP[202].xxxx 280: MOV TEMP[209].x, |TEMP[9].xxxx| 281: MOV TEMP[210].x, |TEMP[9].yyyy| 282: FSEQ TEMP[211].x, TEMP[209].xxxx, TEMP[210].xxxx 283: MUL TEMP[212].x, TEMP[175].xxxx, TEMP[180].xxxx 284: MUL TEMP[213].x, TEMP[212].xxxx, TEMP[182].xxxx 285: MOV TEMP[214].x, |TEMP[213].xxxx| 286: UCMP TEMP[215].x, TEMP[211].xxxx, IMM[0].zzzz, TEMP[214].xxxx 287: MOV TEMP[216].x, |TEMP[215].xxxx| 288: FSLT TEMP[217].x, IMM[0].zzzz, TEMP[216].xxxx 289: AND TEMP[218].x, TEMP[217].xxxx, IMM[0].zzzz 290: MAD TEMP[219].x, TEMP[203].xxxx, IMM[7].wwww, IMM[8].xxxx 291: MAD TEMP[203].x, TEMP[218].xxxx, TEMP[219].xxxx, TEMP[203].xxxx 292: MOV TEMP[220].x, |TEMP[9].xxxx| 293: MOV TEMP[221].x, |TEMP[9].yyyy| 294: FSEQ TEMP[222].x, TEMP[220].xxxx, TEMP[221].xxxx 295: MUL TEMP[223].x, TEMP[175].xxxx, TEMP[180].xxxx 296: MUL TEMP[224].x, TEMP[223].xxxx, TEMP[182].xxxx 297: MOV TEMP[225].x, |TEMP[224].xxxx| 298: UCMP TEMP[226].x, TEMP[222].xxxx, IMM[0].zzzz, TEMP[225].xxxx 299: SSG TEMP[227].x, TEMP[226].xxxx 300: MUL TEMP[228].x, TEMP[203].xxxx, TEMP[227].xxxx 301: AND TEMP[229].x, TEMP[173].xxxx, IMM[0].zzzz 302: MAD TEMP[228].x, TEMP[229].xxxx, IMM[8].xxxx, TEMP[228].xxxx 303: FSGE TEMP[230].x, IMM[0].xxxx, TEMP[155].xxxx 304: MOV TEMP[231].x, |TEMP[155].xxxx| 305: UCMP TEMP[232].x, TEMP[230].xxxx, TEMP[231].xxxx, TEMP[155].yyyy 306: MOV TEMP[233].x, |TEMP[155].xxxx| 307: UCMP TEMP[234].x, TEMP[230].xxxx, TEMP[155].yyyy, TEMP[233].xxxx 308: MOV TEMP[235].x, |TEMP[234].xxxx| 309: FSGE TEMP[236].x, TEMP[235].xxxx, IMM[2].wwww 310: UCMP TEMP[237].x, TEMP[236].xxxx, IMM[6].xxxx, IMM[0].zzzz 311: MUL TEMP[238].x, TEMP[234].xxxx, TEMP[237].xxxx 312: RCP TEMP[239].x, TEMP[238].xxxx 313: MOV TEMP[240].x, |TEMP[155].xxxx| 314: MOV TEMP[241].x, |TEMP[155].yyyy| 315: FSEQ TEMP[242].x, TEMP[240].xxxx, TEMP[241].xxxx 316: MUL TEMP[243].x, TEMP[232].xxxx, TEMP[237].xxxx 317: MUL TEMP[244].x, TEMP[243].xxxx, TEMP[239].xxxx 318: MOV TEMP[245].x, |TEMP[244].xxxx| 319: UCMP TEMP[246].x, TEMP[242].xxxx, IMM[0].zzzz, TEMP[245].xxxx 320: MOV TEMP[247].x, |TEMP[246].xxxx| 321: MIN TEMP[248].x, TEMP[247].xxxx, IMM[0].zzzz 322: MOV TEMP[249].x, |TEMP[155].xxxx| 323: MOV TEMP[250].x, |TEMP[155].yyyy| 324: FSEQ TEMP[251].x, TEMP[249].xxxx, TEMP[250].xxxx 325: MUL TEMP[252].x, TEMP[232].xxxx, TEMP[237].xxxx 326: MUL TEMP[253].x, TEMP[252].xxxx, TEMP[239].xxxx 327: MOV TEMP[254].x, |TEMP[253].xxxx| 328: UCMP TEMP[255].x, TEMP[251].xxxx, IMM[0].zzzz, TEMP[254].xxxx 329: MOV TEMP[256].x, |TEMP[255].xxxx| 330: MAX TEMP[257].x, TEMP[256].xxxx, IMM[0].zzzz 331: RCP TEMP[258].x, TEMP[257].xxxx 332: MUL TEMP[259].x, TEMP[248].xxxx, TEMP[258].xxxx 333: MUL TEMP[260].x, TEMP[259].xxxx, TEMP[259].xxxx 334: MAD TEMP[261].x, IMM[6].yyyy, TEMP[260].xxxx, IMM[6].zzzz 335: MAD TEMP[262].x, TEMP[261].xxxx, TEMP[260].xxxx, IMM[6].wwww 336: MAD TEMP[263].x, TEMP[262].xxxx, TEMP[260].xxxx, IMM[7].xxxx 337: MAD TEMP[264].x, TEMP[263].xxxx, TEMP[260].xxxx, IMM[7].yyyy 338: MAD TEMP[265].x, TEMP[264].xxxx, TEMP[260].xxxx, IMM[7].zzzz 339: MUL TEMP[260].x, TEMP[265].xxxx, TEMP[259].xxxx 340: MOV TEMP[266].x, |TEMP[155].xxxx| 341: MOV TEMP[267].x, |TEMP[155].yyyy| 342: FSEQ TEMP[268].x, TEMP[266].xxxx, TEMP[267].xxxx 343: MUL TEMP[269].x, TEMP[232].xxxx, TEMP[237].xxxx 344: MUL TEMP[270].x, TEMP[269].xxxx, TEMP[239].xxxx 345: MOV TEMP[271].x, |TEMP[270].xxxx| 346: UCMP TEMP[272].x, TEMP[268].xxxx, IMM[0].zzzz, TEMP[271].xxxx 347: MOV TEMP[273].x, |TEMP[272].xxxx| 348: FSLT TEMP[274].x, IMM[0].zzzz, TEMP[273].xxxx 349: AND TEMP[275].x, TEMP[274].xxxx, IMM[0].zzzz 350: MAD TEMP[276].x, TEMP[260].xxxx, IMM[7].wwww, IMM[8].xxxx 351: MAD TEMP[260].x, TEMP[275].xxxx, TEMP[276].xxxx, TEMP[260].xxxx 352: MOV TEMP[277].x, |TEMP[155].xxxx| 353: MOV TEMP[278].x, |TEMP[155].yyyy| 354: FSEQ TEMP[279].x, TEMP[277].xxxx, TEMP[278].xxxx 355: MUL TEMP[280].x, TEMP[232].xxxx, TEMP[237].xxxx 356: MUL TEMP[281].x, TEMP[280].xxxx, TEMP[239].xxxx 357: MOV TEMP[282].x, |TEMP[281].xxxx| 358: UCMP TEMP[283].x, TEMP[279].xxxx, IMM[0].zzzz, TEMP[282].xxxx 359: SSG TEMP[284].x, TEMP[283].xxxx 360: MUL TEMP[285].x, TEMP[260].xxxx, TEMP[284].xxxx 361: AND TEMP[286].x, TEMP[230].xxxx, IMM[0].zzzz 362: MAD TEMP[285].x, TEMP[286].xxxx, IMM[8].xxxx, TEMP[285].xxxx 363: MIN TEMP[287].x, TEMP[9].yyyy, TEMP[182].xxxx 364: FSLT TEMP[288].x, TEMP[287].xxxx, IMM[0].xxxx 365: UCMP TEMP[289].x, TEMP[288].xxxx, -TEMP[228].xxxx, TEMP[228].xxxx 366: MIN TEMP[290].x, TEMP[155].yyyy, TEMP[239].xxxx 367: FSLT TEMP[291].x, TEMP[290].xxxx, IMM[0].xxxx 368: UCMP TEMP[292].x, TEMP[291].xxxx, -TEMP[285].xxxx, TEMP[285].xxxx 369: ADD TEMP[293].x, TEMP[289].xxxx, -TEMP[292].xxxx 370: COS TEMP[294].x, TEMP[293].xxxx 371: SIN TEMP[295].x, TEMP[293].xxxx 372: MOV TEMP[294].y, -TEMP[295].xxxx 373: SIN TEMP[296].x, TEMP[293].xxxx 374: COS TEMP[297].x, TEMP[293].xxxx 375: MOV TEMP[296].y, TEMP[297].xxxx 376: ADD TEMP[298].xy, TEMP[3].xyyy, -TEMP[89].xyyy 377: DP2 TEMP[299].x, TEMP[298].xyyy, TEMP[294].xyyy 378: DP2 TEMP[300].x, TEMP[298].xyyy, TEMP[296].xyyy 379: MOV TEMP[299].y, TEMP[300].xxxx 380: ADD TEMP[3].xy, TEMP[299].xyyy, TEMP[89].xyyy 381: ELSE 382: ADD TEMP[301].xy, TEMP[9].xyyy, -TEMP[154].zwww 383: ADD TEMP[3].xy, TEMP[3].xyyy, TEMP[301].xyyy 384: ENDIF 385: ENDIF 386: ENDIF 387: ENDIF 388: ENDIF 389: ENDIF 390: ENDIF 391: ELSE 392: FSEQ TEMP[302].xy, TEMP[1].xyyy, IMM[0].xxxx 393: AND TEMP[303].x, TEMP[302].xxxx, TEMP[302].yyyy 394: FSLT TEMP[304].x, IMM[0].xxxx, CONST[0][1].zzzz 395: AND TEMP[305].x, TEMP[304].xxxx, IMM[0].zzzz 396: UCMP TEMP[3].y, TEMP[303].xxxx, TEMP[305].xxxx, TEMP[3] 397: FSLT TEMP[306].x, IMM[0].xxxx, CONST[0][1].zzzz 398: UIF TEMP[306].xxxx 399: MOV TEMP[307].x, IMM[3].yyyy 400: ELSE 401: MOV TEMP[308].xy, IMM[1].xxxx 402: TXF_LZ TEMP[309].y, TEMP[308], SAMP[0], 2D 403: FSLT TEMP[307].x, IMM[0].xxxx, TEMP[309].yyyy 404: ENDIF 405: UIF TEMP[307].xxxx 406: MOV TEMP[310].xy, IMM[1].xxxx 407: TXF_LZ TEMP[311].x, TEMP[310], SAMP[0], 2D 408: ADD TEMP[312].x, TEMP[311].xxxx, IMM[0].zzzz 409: FSEQ TEMP[313].xy, TEMP[1].xyyy, IMM[0].xxxx 410: AND TEMP[314].x, TEMP[313].xxxx, TEMP[313].yyyy 411: UCMP TEMP[3].x, TEMP[314].xxxx, TEMP[312].xxxx, TEMP[3] 412: MAD TEMP[315].x, CONST[0][0].xxxx, TEMP[1].yyyy, TEMP[1].xxxx 413: FSEQ TEMP[316].x, TEMP[315].xxxx, TEMP[312].xxxx 414: RCP TEMP[317].x, CONST[0][0].yyyy 415: MUL TEMP[318], CONST[0][1], TEMP[317].xxxx 416: UCMP TEMP[3], TEMP[316].xxxx, TEMP[318], TEMP[3] 417: ENDIF 418: ENDIF 419: ENDIF 420: MOV OUT[0], TEMP[3] 421: END define amdgpu_ps <{ i32, i32, i32, i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }> @main(<4 x i32> addrspace(6)* inreg noalias dereferenceable(18446744073709551615), <8 x i32> addrspace(6)* inreg noalias dereferenceable(18446744073709551615), float addrspace(6)* inreg noalias dereferenceable(18446744073709551615), <8 x i32> addrspace(6)* inreg noalias dereferenceable(18446744073709551615), float inreg, i32 inreg, <2 x i32>, <2 x i32>, <2 x i32>, <3 x i32>, <2 x i32>, <2 x i32>, <2 x i32>, float, float, float, float, float, i32, i32, float, i32) #0 { main_body: %22 = ptrtoint float addrspace(6)* %2 to i32 %23 = insertelement <4 x i32> , i32 %22, i32 0 %24 = call nsz float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %23, i32 32, i32 0) #1 %25 = bitcast float %24 to i32 %26 = icmp eq i32 %25, 0 br i1 %26, label %if5, label %else7 if5: ; preds = %main_body br label %endif419 else7: ; preds = %main_body %27 = call nsz float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %23, i32 48, i32 0) #1 %28 = fmul nsz float %27, %15 %29 = call nsz float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %23, i32 52, i32 0) #1 %30 = fadd nsz float %28, %29 %31 = fadd nsz float %14, -5.000000e-01 %32 = fadd nsz float %30, -5.000000e-01 %33 = fptosi float %31 to i32 %34 = fptosi float %32 to i32 %35 = getelementptr inbounds <8 x i32>, <8 x i32> addrspace(6)* %3, i32 16, !amdgpu.uniform !0 %36 = load <8 x i32>, <8 x i32> addrspace(6)* %35, align 32, !invariant.load !0 %37 = call nsz <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i32(i32 15, i32 %33, i32 %34, <8 x i32> %36, i32 0, i32 0) #1 %38 = extractelement <4 x float> %37, i32 0 %39 = extractelement <4 x float> %37, i32 1 %40 = extractelement <4 x float> %37, i32 2 %41 = extractelement <4 x float> %37, i32 3 %42 = call nsz float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %23, i32 4, i32 0) #1 %43 = fdiv nsz float 1.000000e+00, %42 %44 = call nsz float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %23, i32 16, i32 0) #1 %45 = fmul nsz float %44, %43 %46 = call nsz float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %23, i32 20, i32 0) #1 %47 = fmul nsz float %46, %43 %48 = getelementptr inbounds <8 x i32>, <8 x i32> addrspace(6)* %3, i32 18, !amdgpu.uniform !0 %49 = load <8 x i32>, <8 x i32> addrspace(6)* %48, align 32, !invariant.load !0 %50 = call float @llvm.amdgcn.image.load.2d.f32.i32(i32 1, i32 32, i32 2, <8 x i32> %49, i32 0, i32 0) %51 = fcmp nsz ogt float %50, 0.000000e+00 %52 = fcmp nsz oeq float %31, 0.000000e+00 %53 = fcmp nsz oeq float %32, 0.000000e+00 %54 = and i1 %52, %53 %55 = call nsz float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %23, i32 24, i32 0) #1 %56 = fcmp nsz ogt float %55, 0.000000e+00 %57 = select i1 %56, float 1.000000e+00, float 0.000000e+00 br i1 %51, label %if20, label %else391 if20: ; preds = %else7 %58 = fmul nsz float %39, %57 %59 = select nsz i1 %54, float %58, float %39 br i1 %56, label %if28, label %endif419 if28: ; preds = %if20 br i1 %54, label %if31, label %endif110 if31: ; preds = %if28 %60 = call nsz <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i32(i32 15, i32 0, i32 0, <8 x i32> %36, i32 0, i32 0) #1 %61 = extractelement <4 x float> %60, i32 1 %62 = fcmp nsz oeq float %61, 0.000000e+00 br i1 %62, label %if36, label %endif110 if36: ; preds = %if31 %63 = call nsz float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %23, i32 0, i32 0) #1 %64 = fdiv nsz float 1.000000e+00, %63 %65 = call nsz float @llvm.floor.f32(float %64) #1 %66 = fmul nsz float %63, %65 %67 = fsub nsz float 1.000000e+00, %66 %68 = fptosi float %67 to i32 %69 = fptosi float %65 to i32 %70 = call nsz <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i32(i32 15, i32 %68, i32 %69, <8 x i32> %36, i32 0, i32 0) #1 %71 = extractelement <4 x float> %70, i32 0 %72 = extractelement <4 x float> %70, i32 1 %73 = extractelement <4 x float> %70, i32 2 %74 = extractelement <4 x float> %60, i32 0 br label %loop54 loop54: ; preds = %endif93, %if36 %TEMP41.x.0 = phi float [ 2.000000e+00, %if36 ], [ %115, %endif93 ] %TEMP40.x.0 = phi float [ -1.000000e+00, %if36 ], [ %TEMP40.x.1, %endif93 ] %TEMP39.x.0 = phi float [ 1.000000e+00, %if36 ], [ %116, %endif93 ] %TEMP37.x.0 = phi float [ 1.000000e+09, %if36 ], [ %TEMP37.x.1, %endif93 ] %TEMP36.z.0 = phi float [ %73, %if36 ], [ %85, %endif93 ] %TEMP36.y.0 = phi float [ %72, %if36 ], [ %84, %endif93 ] %TEMP36.x.0 = phi float [ %71, %if36 ], [ %83, %endif93 ] %75 = fcmp nsz ult float %TEMP41.x.0, %74 br i1 %75, label %endif61, label %endloop101 endif61: ; preds = %loop54 %76 = fmul nsz float %TEMP41.x.0, %64 %77 = call nsz float @llvm.floor.f32(float %76) #1 %78 = fmul nsz float %63, %77 %79 = fsub nsz float %TEMP41.x.0, %78 %80 = fptosi float %79 to i32 %81 = fptosi float %77 to i32 %82 = call nsz <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i32(i32 15, i32 %80, i32 %81, <8 x i32> %36, i32 0, i32 0) #1 %83 = extractelement <4 x float> %82, i32 0 %84 = extractelement <4 x float> %82, i32 1 %85 = extractelement <4 x float> %82, i32 2 %86 = fcmp nsz ogt float %TEMP36.z.0, 0.000000e+00 %87 = fcmp nsz ogt float %85, 0.000000e+00 %88 = and i1 %86, %87 br i1 %88, label %if78, label %endif93 if78: ; preds = %endif61 %89 = fsub nsz float %45, %TEMP36.x.0 %90 = fsub nsz float %47, %TEMP36.y.0 %91 = fsub nsz float %83, %TEMP36.x.0 %92 = fsub nsz float %84, %TEMP36.y.0 %93 = fmul nsz float %89, %91 %94 = fmul nsz float %90, %92 %95 = fadd nsz float %93, %94 %96 = fmul nsz float %91, %91 %97 = fmul nsz float %92, %92 %98 = fadd nsz float %96, %97 %99 = fdiv nsz float 1.000000e+00, %98 %100 = fmul nsz float %95, %99 %101 = call nsz float @llvm.maxnum.f32(float %100, float 0.000000e+00) #1 %102 = call nsz float @llvm.minnum.f32(float %101, float 1.000000e+00) #1 %103 = fmul nsz float %91, %102 %104 = fmul nsz float %92, %102 %105 = fsub nsz float %89, %103 %106 = fsub nsz float %90, %104 %107 = fmul nsz float %105, %105 %108 = fmul nsz float %106, %106 %109 = fadd nsz float %107, %108 %110 = call nsz float @llvm.sqrt.f32(float %109) #1 %111 = fcmp nsz olt float %110, %TEMP37.x.0 %112 = select nsz i1 %111, float %110, float %TEMP37.x.0 %113 = select nsz i1 %111, float %TEMP39.x.0, float %TEMP40.x.0 br label %endif93 endif93: ; preds = %if78, %endif61 %TEMP40.x.1 = phi float [ %113, %if78 ], [ %TEMP40.x.0, %endif61 ] %TEMP37.x.1 = phi float [ %112, %if78 ], [ %TEMP37.x.0, %endif61 ] %114 = fcmp nsz olt float %85, 0.000000e+00 %115 = fadd nsz float %TEMP41.x.0, 1.000000e+00 %116 = select nsz i1 %114, float %115, float %TEMP39.x.0 br label %loop54 endloop101: ; preds = %loop54 %117 = fcmp nsz uge float %TEMP37.x.0, 0x3F947AE140000000 %118 = fadd nsz float %TEMP40.x.0, 1.000000e+00 %119 = select nsz i1 %117, float 0.000000e+00, float %118 br label %endif110 endif110: ; preds = %if31, %endloop101, %if28 %TEMP3.w.0 = phi float [ %41, %if28 ], [ %47, %endloop101 ], [ %47, %if31 ] %TEMP3.z.0 = phi float [ %40, %if28 ], [ %45, %endloop101 ], [ %45, %if31 ] %TEMP3.y.1 = phi float [ %59, %if28 ], [ %119, %endloop101 ], [ %59, %if31 ] %120 = call nsz <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i32(i32 15, i32 0, i32 0, <8 x i32> %36, i32 0, i32 0) #1 %121 = extractelement <4 x float> %120, i32 1 %122 = fadd nsz float %121, -1.000000e+00 %123 = extractelement <4 x float> %120, i32 0 %124 = call nsz float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %23, i32 0, i32 0) #1 %125 = fmul nsz float %124, %32 %126 = fadd nsz float %125, %31 %127 = fcmp nsz ult float %122, 0.000000e+00 br i1 %127, label %endif419, label %if120 if120: ; preds = %endif110 br label %loop123 loop123: ; preds = %endif145, %if120 %TEMP89.y.0 = phi float [ 0.000000e+00, %if120 ], [ %152, %endif145 ] %TEMP89.x.0 = phi float [ 0.000000e+00, %if120 ], [ %151, %endif145 ] %TEMP87.x.0 = phi float [ %122, %if120 ], [ %153, %endif145 ] %128 = fcmp nsz olt float %TEMP87.x.0, %123 br i1 %128, label %if125, label %endif141 if125: ; preds = %loop123 %129 = fdiv nsz float 1.000000e+00, %124 %130 = fmul nsz float %TEMP87.x.0, %129 %131 = call nsz float @llvm.floor.f32(float %130) #1 %132 = fmul nsz float %124, %131 %133 = fsub nsz float %TEMP87.x.0, %132 %134 = fptosi float %133 to i32 %135 = fptosi float %131 to i32 %136 = call float @llvm.amdgcn.image.load.2d.f32.i32(i32 4, i32 %134, i32 %135, <8 x i32> %36, i32 0, i32 0) %137 = fcmp nsz ogt float %136, 0.000000e+00 %138 = sext i1 %137 to i32 br label %endif141 endif141: ; preds = %loop123, %if125 %139 = phi i32 [ %138, %if125 ], [ 0, %loop123 ] %140 = icmp eq i32 %139, -1 br i1 %140, label %endif145, label %endloop160 endif145: ; preds = %endif141 %141 = fdiv nsz float 1.000000e+00, %124 %142 = fmul nsz float %TEMP87.x.0, %141 %143 = call nsz float @llvm.floor.f32(float %142) #1 %144 = fmul nsz float %124, %143 %145 = fsub nsz float %TEMP87.x.0, %144 %146 = fptosi float %145 to i32 %147 = fptosi float %143 to i32 %148 = call nsz <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i32(i32 15, i32 %146, i32 %147, <8 x i32> %36, i32 0, i32 0) #1 %149 = extractelement <4 x float> %148, i32 0 %150 = extractelement <4 x float> %148, i32 1 %151 = fadd nsz float %TEMP89.x.0, %149 %152 = fadd nsz float %TEMP89.y.0, %150 %153 = fadd nsz float %TEMP87.x.0, 1.000000e+00 br label %loop123 endloop160: ; preds = %endif141 %154 = call float @llvm.amdgcn.image.load.2d.f32.i32(i32 1, i32 67, i32 1, <8 x i32> %49, i32 0, i32 0) %155 = fcmp nsz ogt float %154, 0.000000e+00 br i1 %155, label %if164, label %else197 if164: ; preds = %endloop160 %156 = fadd nsz float %TEMP87.x.0, 1.000000e+00 %157 = fcmp nsz olt float %123, %126 %158 = fadd nsz float %123, %156 %159 = fsub nsz float %158, %122 %160 = fcmp nsz oge float %159, %126 %161 = and i1 %157, %160 br i1 %161, label %if171, label %endif191 if171: ; preds = %if164 %162 = fadd nsz float %122, %126 %163 = fsub nsz float %162, %123 %164 = fadd nsz float %163, -1.000000e+00 %165 = fdiv nsz float 1.000000e+00, %124 %166 = fmul nsz float %164, %165 %167 = call nsz float @llvm.floor.f32(float %166) #1 %168 = fmul nsz float %124, %167 %169 = fsub nsz float %164, %168 %170 = fptosi float %169 to i32 %171 = fptosi float %167 to i32 %172 = call nsz <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i32(i32 15, i32 %170, i32 %171, <8 x i32> %36, i32 0, i32 0) #1 %173 = extractelement <4 x float> %172, i32 0 %174 = extractelement <4 x float> %172, i32 1 %175 = extractelement <4 x float> %172, i32 2 %176 = extractelement <4 x float> %172, i32 3 br label %endif191 endif191: ; preds = %if171, %if164 %TEMP3.w.1 = phi float [ %176, %if171 ], [ %TEMP3.w.0, %if164 ] %TEMP3.z.1 = phi float [ %175, %if171 ], [ %TEMP3.z.0, %if164 ] %TEMP3.y.2 = phi float [ %174, %if171 ], [ %TEMP3.y.1, %if164 ] %TEMP3.x.0 = phi float [ %173, %if171 ], [ %38, %if164 ] %177 = fsub nsz float %156, %122 %178 = fadd nsz float %TEMP3.x.0, %177 %179 = select nsz i1 %54, float %178, float %TEMP3.x.0 br label %endif419 else197: ; preds = %endloop160 %180 = fcmp nsz une float %31, 0.000000e+00 %181 = fcmp nsz une float %32, 0.000000e+00 %182 = or i1 %180, %181 %183 = fcmp nsz uge float %126, %122 %184 = fcmp nsz uge float %TEMP87.x.0, %126 %185 = and i1 %184, %183 %186 = and i1 %182, %185 br i1 %186, label %if205, label %endif419 if205: ; preds = %else197 %187 = fsub nsz float %TEMP87.x.0, %122 %188 = fdiv nsz float 1.000000e+00, %187 %189 = fmul nsz float %TEMP89.x.0, %188 %190 = fmul nsz float %TEMP89.y.0, %188 %191 = extractelement <4 x float> %120, i32 2 %192 = extractelement <4 x float> %120, i32 3 %193 = call float @llvm.amdgcn.image.load.2d.f32.i32(i32 1, i32 8, i32 0, <8 x i32> %49, i32 0, i32 0) %194 = fcmp nsz ogt float %193, 0.000000e+00 br i1 %194, label %endif221, label %else217 else217: ; preds = %if205 %195 = call float @llvm.amdgcn.image.load.2d.f32.i32(i32 1, i32 46, i32 0, <8 x i32> %49, i32 0, i32 0) %196 = fcmp nsz ogt float %195, 0.000000e+00 br label %endif221 endif221: ; preds = %if205, %else217 %197 = phi i1 [ %196, %else217 ], [ true, %if205 ] br i1 %197, label %endif419, label %else224 else224: ; preds = %endif221 %198 = call float @llvm.amdgcn.image.load.2d.f32.i32(i32 1, i32 83, i32 0, <8 x i32> %49, i32 0, i32 0) %199 = fcmp nsz ogt float %198, 0.000000e+00 br i1 %199, label %if228, label %else236 if228: ; preds = %else224 %200 = fsub nsz float %38, %189 %201 = fsub nsz float %TEMP3.y.1, %190 %202 = fsub nsz float %45, %189 %203 = fsub nsz float %47, %190 %204 = fmul nsz float %200, %202 %205 = fmul nsz float %201, %203 %206 = fsub nsz float %191, %189 %207 = fsub nsz float %192, %190 %208 = fdiv nsz float 1.000000e+00, %206 %209 = fdiv nsz float 1.000000e+00, %207 %210 = fmul nsz float %204, %208 %211 = fadd nsz float %210, %189 %212 = fmul nsz float %205, %209 %213 = fadd nsz float %212, %190 br label %endif419 else236: ; preds = %else224 %214 = call float @llvm.amdgcn.image.load.2d.f32.i32(i32 1, i32 82, i32 0, <8 x i32> %49, i32 0, i32 0) %215 = fcmp nsz ogt float %214, 0.000000e+00 br i1 %215, label %if240, label %else381 if240: ; preds = %else236 %216 = fsub nsz float %45, %189 %217 = fsub nsz float %47, %190 %218 = fsub nsz float %191, %189 %219 = fsub nsz float %192, %190 %220 = fcmp nsz ole float %216, 0.000000e+00 %221 = call nsz float @llvm.fabs.f32(float %216) #4 %222 = select nsz i1 %220, float %221, float %217 %223 = select nsz i1 %220, float %217, float %221 %224 = call nsz float @llvm.fabs.f32(float %223) #4 %225 = fcmp nsz oge float %224, 0x43ABC16D60000000 %226 = select nsz i1 %225, float 2.500000e-01, float 1.000000e+00 %227 = fmul nsz float %223, %226 %228 = fdiv nsz float 1.000000e+00, %227 %229 = call nsz float @llvm.fabs.f32(float %217) #4 %230 = fcmp nsz oeq float %221, %229 %231 = fmul nsz float %222, %226 %232 = fmul nsz float %231, %228 %233 = call nsz float @llvm.fabs.f32(float %232) #4 %234 = select nsz i1 %230, float 1.000000e+00, float %233 %235 = call nsz float @llvm.minnum.f32(float %234, float 1.000000e+00) #1 %236 = call nsz float @llvm.maxnum.f32(float %234, float 1.000000e+00) #1 %237 = fdiv nsz float 1.000000e+00, %236 %238 = fmul nsz float %235, %237 %239 = fmul nsz float %238, %238 %240 = fmul nsz float %239, 0xBF88D8D4A0000000 %241 = fadd nsz float %240, 0x3FAB7C2020000000 %242 = fmul nsz float %241, %239 %243 = fadd nsz float %242, 0xBFBE0AABA0000000 %244 = fmul nsz float %243, %239 %245 = fadd nsz float %244, 0x3FC8D17820000000 %246 = fmul nsz float %245, %239 %247 = fadd nsz float %246, 0xBFD54A8EC0000000 %248 = fmul nsz float %247, %239 %249 = fadd nsz float %248, 0x3FEFFFD4A0000000 %250 = fmul nsz float %249, %238 %251 = fcmp nsz ogt float %234, 1.000000e+00 %252 = select i1 %251, float 1.000000e+00, float 0.000000e+00 %253 = fmul nsz float %250, -2.000000e+00 %254 = fadd nsz float %253, 0x3FF921FB60000000 %255 = fmul nsz float %252, %254 %256 = fadd nsz float %255, %250 %257 = fcmp nsz ogt float %234, 0.000000e+00 %258 = select nsz i1 %257, float 1.000000e+00, float %234 %259 = fcmp nsz oge float %258, 0.000000e+00 %260 = select nsz i1 %259, float %258, float -1.000000e+00 %261 = fmul nsz float %256, %260 %262 = select i1 %220, float 0x3FF921FB60000000, float 0.000000e+00 %263 = fadd nsz float %262, %261 %264 = fcmp nsz ole float %218, 0.000000e+00 %265 = call nsz float @llvm.fabs.f32(float %218) #4 %266 = select nsz i1 %264, float %265, float %219 %267 = select nsz i1 %264, float %219, float %265 %268 = call nsz float @llvm.fabs.f32(float %267) #4 %269 = fcmp nsz oge float %268, 0x43ABC16D60000000 %270 = select nsz i1 %269, float 2.500000e-01, float 1.000000e+00 %271 = fmul nsz float %267, %270 %272 = fdiv nsz float 1.000000e+00, %271 %273 = call nsz float @llvm.fabs.f32(float %219) #4 %274 = fcmp nsz oeq float %265, %273 %275 = fmul nsz float %266, %270 %276 = fmul nsz float %275, %272 %277 = call nsz float @llvm.fabs.f32(float %276) #4 %278 = select nsz i1 %274, float 1.000000e+00, float %277 %279 = call nsz float @llvm.minnum.f32(float %278, float 1.000000e+00) #1 %280 = call nsz float @llvm.maxnum.f32(float %278, float 1.000000e+00) #1 %281 = fdiv nsz float 1.000000e+00, %280 %282 = fmul nsz float %279, %281 %283 = fmul nsz float %282, %282 %284 = fmul nsz float %283, 0xBF88D8D4A0000000 %285 = fadd nsz float %284, 0x3FAB7C2020000000 %286 = fmul nsz float %285, %283 %287 = fadd nsz float %286, 0xBFBE0AABA0000000 %288 = fmul nsz float %287, %283 %289 = fadd nsz float %288, 0x3FC8D17820000000 %290 = fmul nsz float %289, %283 %291 = fadd nsz float %290, 0xBFD54A8EC0000000 %292 = fmul nsz float %291, %283 %293 = fadd nsz float %292, 0x3FEFFFD4A0000000 %294 = fmul nsz float %293, %282 %295 = fcmp nsz ogt float %278, 1.000000e+00 %296 = select i1 %295, float 1.000000e+00, float 0.000000e+00 %297 = fmul nsz float %294, -2.000000e+00 %298 = fadd nsz float %297, 0x3FF921FB60000000 %299 = fmul nsz float %296, %298 %300 = fadd nsz float %299, %294 %301 = fcmp nsz ogt float %278, 0.000000e+00 %302 = select nsz i1 %301, float 1.000000e+00, float %278 %303 = fcmp nsz oge float %302, 0.000000e+00 %304 = select nsz i1 %303, float %302, float -1.000000e+00 %305 = fmul nsz float %300, %304 %306 = select i1 %264, float 0x3FF921FB60000000, float 0.000000e+00 %307 = fadd nsz float %306, %305 %308 = call nsz float @llvm.minnum.f32(float %217, float %228) #1 %309 = fcmp nsz olt float %308, 0.000000e+00 %310 = fsub nsz float -0.000000e+00, %263 %311 = select nsz i1 %309, float %310, float %263 %312 = call nsz float @llvm.minnum.f32(float %219, float %272) #1 %313 = fcmp nsz olt float %312, 0.000000e+00 %314 = fsub nsz float -0.000000e+00, %307 %315 = select nsz i1 %313, float %314, float %307 %316 = fsub nsz float %311, %315 %317 = call nsz float @llvm.cos.f32(float %316) #1 %318 = call nsz float @llvm.sin.f32(float %316) #1 %319 = fsub nsz float %38, %189 %320 = fsub nsz float %TEMP3.y.1, %190 %321 = fmul nsz float %319, %317 %322 = fmul nsz float %318, %320 %323 = fsub nsz float %321, %322 %324 = fmul nsz float %319, %318 %325 = fmul nsz float %320, %317 %326 = fadd nsz float %324, %325 %327 = fadd nsz float %323, %189 %328 = fadd nsz float %326, %190 br label %endif419 else381: ; preds = %else236 %329 = fsub nsz float %45, %191 %330 = fsub nsz float %47, %192 %331 = fadd nsz float %38, %329 %332 = fadd nsz float %TEMP3.y.1, %330 br label %endif419 else391: ; preds = %else7 %333 = select nsz i1 %54, float %57, float %39 br i1 %56, label %endif404, label %else400 else400: ; preds = %else391 %334 = call float @llvm.amdgcn.image.load.2d.f32.i32(i32 2, i32 0, i32 0, <8 x i32> %36, i32 0, i32 0) %335 = fcmp nsz ogt float %334, 0.000000e+00 br label %endif404 endif404: ; preds = %else391, %else400 %336 = phi i1 [ %335, %else400 ], [ true, %else391 ] br i1 %336, label %if405, label %endif419 if405: ; preds = %endif404 %337 = call float @llvm.amdgcn.image.load.2d.f32.i32(i32 1, i32 0, i32 0, <8 x i32> %36, i32 0, i32 0) %338 = fadd nsz float %337, 1.000000e+00 %339 = select nsz i1 %54, float %338, float %38 %340 = call nsz float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %23, i32 0, i32 0) #1 %341 = fmul nsz float %340, %32 %342 = fadd nsz float %341, %31 %343 = fcmp nsz oeq float %342, %338 %344 = fmul nsz float %55, %43 %345 = call nsz float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %23, i32 28, i32 0) #1 %346 = fmul nsz float %345, %43 %347 = select nsz i1 %343, float %45, float %339 %348 = select nsz i1 %343, float %47, float %333 %349 = select nsz i1 %343, float %344, float %40 %350 = select nsz i1 %343, float %346, float %41 br label %endif419 endif419: ; preds = %endif110, %else197, %if228, %else381, %if240, %endif221, %endif191, %if20, %if405, %endif404, %if5 %TEMP3.w.7 = phi float [ 0x7FF8000000000000, %if5 ], [ %41, %if20 ], [ %TEMP3.w.0, %endif110 ], [ %TEMP3.w.1, %endif191 ], [ %TEMP3.w.0, %endif221 ], [ %TEMP3.w.0, %if240 ], [ %TEMP3.w.0, %else381 ], [ %TEMP3.w.0, %if228 ], [ %TEMP3.w.0, %else197 ], [ %350, %if405 ], [ %41, %endif404 ] %TEMP3.z.7 = phi float [ 0x7FF8000000000000, %if5 ], [ %40, %if20 ], [ %TEMP3.z.0, %endif110 ], [ %TEMP3.z.1, %endif191 ], [ %TEMP3.z.0, %endif221 ], [ %TEMP3.z.0, %if240 ], [ %TEMP3.z.0, %else381 ], [ %TEMP3.z.0, %if228 ], [ %TEMP3.z.0, %else197 ], [ %349, %if405 ], [ %40, %endif404 ] %TEMP3.y.12 = phi float [ 0x7FF8000000000000, %if5 ], [ %59, %if20 ], [ %TEMP3.y.1, %endif110 ], [ %TEMP3.y.2, %endif191 ], [ -1.000000e+00, %endif221 ], [ %328, %if240 ], [ %332, %else381 ], [ %213, %if228 ], [ %TEMP3.y.1, %else197 ], [ %348, %if405 ], [ %333, %endif404 ] %TEMP3.x.10 = phi float [ 0x7FF8000000000000, %if5 ], [ %38, %if20 ], [ %38, %endif110 ], [ %179, %endif191 ], [ -1.000000e+00, %endif221 ], [ %327, %if240 ], [ %331, %else381 ], [ %211, %if228 ], [ %38, %else197 ], [ %347, %if405 ], [ %38, %endif404 ] %351 = bitcast float %4 to i32 %352 = insertvalue <{ i32, i32, i32, i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }> undef, i32 %351, 4 %353 = insertvalue <{ i32, i32, i32, i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }> %352, float %TEMP3.x.10, 5 %354 = insertvalue <{ i32, i32, i32, i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }> %353, float %TEMP3.y.12, 6 %355 = insertvalue <{ i32, i32, i32, i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }> %354, float %TEMP3.z.7, 7 %356 = insertvalue <{ i32, i32, i32, i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }> %355, float %TEMP3.w.7, 8 %357 = insertvalue <{ i32, i32, i32, i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }> %356, float %20, 19 ret <{ i32, i32, i32, i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }> %357 }