W3DNShaderInfo - Get shader information Verbose mode Shader: 3.frag.spv Compiling 3.frag.spv failed (23) with error: shader compilation failed due to errors Log: Shader size: 13732 bytes Parsing SPIR-V code Module Version: 1.2.0 Generator Magic Number: 0x80003 Upper bound on ids: 572 Parsed instructions: OpCapability: : Shader 1: OpExtInstImport: : GLSL.std.450 OpMemoryModel: : addressing: Logical, memory: GLSL450 4: OpEntryPoint: : main, execution model: Fragment 4: OpExecutionMode: : OriginLowerLeft OpSource: : ESSL ver 310 4: OpName: : main 12: OpName: : rotateX(f1; 11: OpName: : theta 17: OpName: : intersectSDF(f1;f1; 15: OpName: : distA 16: OpName: : distB 21: OpName: : differenceSDF(f1;f1; 19: OpName: : distA 20: OpName: : distB 27: OpName: : boxSDF(vf3;vf3; 25: OpName: : p 26: OpName: : size 32: OpName: : sphereSDF(vf3;f1; 30: OpName: : p 31: OpName: : r 36: OpName: : sceneSDF(vf3; 35: OpName: : samplePoint 43: OpName: : shortestDistanceToSurface(vf3;vf3;f1;f1; 39: OpName: : eye 40: OpName: : marchingDirection 41: OpName: : start 42: OpName: : end 51: OpName: : rayDirection(f1;vf2;vf2; 48: OpName: : fieldOfView 49: OpName: : size 50: OpName: : fragCoord 55: OpName: : estimateNormal(vf3; 54: OpName: : p 65: OpName: : phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3; 58: OpName: : k_d 59: OpName: : k_s 60: OpName: : alpha 61: OpName: : p 62: OpName: : eye 63: OpName: : lightPos 64: OpName: : lightIntensity 74: OpName: : phongIllumination(vf3;vf3;vf3;f1;vf3;vf3; 68: OpName: : k_a 69: OpName: : k_d 70: OpName: : k_s 71: OpName: : alpha 72: OpName: : p 73: OpName: : eye 80: OpName: : viewMatrix(vf3;vf3;vf3; 77: OpName: : eye 78: OpName: : center 79: OpName: : up 87: OpName: : mainImage(vf4;vf2; 85: OpName: : fragColor 86: OpName: : fragCoord 89: OpName: : c 92: OpName: : s 131: OpName: : d 139: OpName: : insideDistance 153: OpName: : outsideDistance 169: OpName: : cube 174: OpName: : param174 179: OpName: : param179 180: OpName: : param180 182: OpName: : sphere 184: OpName: : param184 186: OpName: : param186 188: OpName: : bigSphere 190: OpName: : param190 192: OpName: : param192 194: OpName: : param194 196: OpName: : param196 199: OpName: : param199 200: OpName: : param200 205: OpName: : depth 209: OpName: : i 220: OpName: : dist 226: OpName: : param226 251: OpName: : xy 257: OpName: : z 282: OpName: : param282 292: OpName: : param292 303: OpName: : param303 313: OpName: : param313 324: OpName: : param324 334: OpName: : param334 341: OpName: : N 342: OpName: : param342 345: OpName: : L 350: OpName: : V 355: OpName: : R 361: OpName: : dotLN 365: OpName: : dotRV 398: OpName: : color 403: OpName: : light1Pos 407: OpName: : light1Intensity 410: OpName: : param410 412: OpName: : param412 414: OpName: : param414 416: OpName: : param416 418: OpName: : param418 420: OpName: : param420 422: OpName: : param422 430: OpName: : f 435: OpName: : s 439: OpName: : u 462: OpName: : viewDir 465: OpName: : iResolution 466: OpName: : param466 467: OpName: : param467 470: OpName: : param470 473: OpName: : eye 478: OpName: : iTime 486: OpName: : viewToWorld 488: OpName: : param488 490: OpName: : param490 491: OpName: : param491 493: OpName: : worldDir 497: OpName: : dist 499: OpName: : param499 501: OpName: : param501 503: OpName: : param503 504: OpName: : param504 513: OpName: : p 519: OpName: : K_a 520: OpName: : K_d 522: OpName: : K_s 524: OpName: : shininess 526: OpName: : color 527: OpName: : param527 529: OpName: : param529 531: OpName: : param531 533: OpName: : param533 535: OpName: : param535 537: OpName: : param537 545: OpName: : color 547: OpName: : gl_FragCoord 548: OpName: : param548 549: OpName: : param549 555: OpName: : finalColor 558: OpName: : iMouse 559: OpName: : iDate 560: OpName: : iFrame 564: OpName: : iChannelResolution 568: OpName: : iChannel0 569: OpName: : iChannel1 570: OpName: : iChannel2 571: OpName: : iChannel3 209: OpDecorate: : RelaxedPrecision 216: OpDecorate: : RelaxedPrecision 245: OpDecorate: : RelaxedPrecision 247: OpDecorate: : RelaxedPrecision 547: OpDecorate: : BuiltIn(FragCoord) 568: OpDecorate: : RelaxedPrecision 568: OpDecorate: : DescriptorSet(0) 569: OpDecorate: : RelaxedPrecision 569: OpDecorate: : DescriptorSet(0) 570: OpDecorate: : RelaxedPrecision 570: OpDecorate: : DescriptorSet(0) 571: OpDecorate: : RelaxedPrecision 571: OpDecorate: : DescriptorSet(0) 217: OpDecorate: : RelaxedPrecision 2: OpTypeVoid: Void 3: OpTypeFunction: 2 << func() 6: OpTypeFloat: Float: 32 bits 7: OpTypePointer: ???Ptr: storage class: Function 8: OpTypeVector: ???Vector3: num-elements: 3, element type id: 6 9: OpTypeMatrix: Matrix?x?: num-columns: 3, column type id: 8 10: OpTypeFunction: 9 << func(7) 14: OpTypeFunction: 6 << func(7, 7) 23: OpTypePointer: ???Ptr: storage class: Function 24: OpTypeFunction: 6 << func(23, 23) 29: OpTypeFunction: 6 << func(23, 7) 34: OpTypeFunction: 6 << func(23) 38: OpTypeFunction: 6 << func(23, 23, 7, 7) 45: OpTypeVector: ???Vector2: num-elements: 2, element type id: 6 46: OpTypePointer: ???Ptr: storage class: Function 47: OpTypeFunction: 8 << func(7, 46, 46) 53: OpTypeFunction: 8 << func(23) 57: OpTypeFunction: 8 << func(23, 23, 7, 23, 23, 23, 23) 67: OpTypeFunction: 8 << func(23, 23, 23, 7, 23, 23) 76: OpTypeFunction: 9 << func(23, 23, 23) 82: OpTypeVector: ???Vector4: num-elements: 4, element type id: 6 83: OpTypePointer: ???Ptr: storage class: Function 84: OpTypeFunction: 2 << func(83, 46) 95: OpConstant: 6 const95 = 0x3f800000 96: OpConstant: 6 const96 = 0x0 97: OpConstantComposite: 8 const97 = {id:95, id:96, id:96} 135: OpConstant: 6 const135 = 0x40000000 140: OpTypeInt: UInt: 32 bits, unsigned 141: OpConstant: 140 const141 = 0x0 144: OpConstant: 140 const144 = 0x1 147: OpConstant: 140 const147 = 0x2 177: OpConstant: 6 const177 = 0x3fe66666 178: OpConstantComposite: 8 const178 = {id:177, id:177, id:177} 183: OpConstant: 6 const183 = 0x3f8ccccd 189: OpConstant: 6 const189 = 0x3f99999a 207: OpTypeInt: Int: 32 bits, signed 208: OpTypePointer: ???Ptr: storage class: Function 210: OpConstant: 207 const210 = 0x0 217: OpConstant: 207 const217 = 0xff 218: OpTypeBool: Bool 229: OpConstant: 6 const229 = 0x38d1b717 246: OpConstant: 207 const246 = 0x1 373: OpConstantComposite: 8 const373 = {id:96, id:96, id:96} 399: OpConstant: 6 const399 = 0x3f000000 400: OpConstantComposite: 8 const400 = {id:399, id:399, id:399} 404: OpConstant: 6 const404 = 0x40c00000 405: OpConstant: 6 const405 = 0x40800000 406: OpConstantComposite: 8 const406 = {id:404, id:135, id:405} 408: OpConstant: 6 const408 = 0x3ecccccd 409: OpConstantComposite: 8 const409 = {id:408, id:408, id:408} 463: OpConstant: 6 const463 = 0x42340000 464: OpTypePointer: ???Ptr: storage class: UniformConstant 465: OpVariable: 464: var465: storage class: UniformConstant 474: OpConstant: 6 const474 = 0x41000000 475: OpConstant: 6 const475 = 0x40a00000 476: OpConstant: 6 const476 = 0x3e4ccccd 477: OpTypePointer: ???Ptr: storage class: UniformConstant 478: OpVariable: 477: var478: storage class: UniformConstant 483: OpConstant: 6 const483 = 0x40e00000 485: OpTypePointer: ???Ptr: storage class: Function 487: OpConstantComposite: 8 const487 = {id:96, id:95, id:96} 498: OpConstant: 6 const498 = 0x42c80000 507: OpConstant: 6 const507 = 0x42c7fff3 511: OpConstantComposite: 82 const511 = {id:96, id:96, id:96, id:96} 523: OpConstantComposite: 8 const523 = {id:95, id:95, id:95} 525: OpConstant: 6 const525 = 0x41200000 546: OpTypePointer: ???Ptr: storage class: Input 547: OpVariable: 546: var547: storage class: Input 554: OpTypePointer: ???Ptr: storage class: Output 555: OpVariable: 554: var555: storage class: Output 557: OpTypePointer: ???Ptr: storage class: UniformConstant 558: OpVariable: 557: var558: storage class: UniformConstant 559: OpVariable: 557: var559: storage class: UniformConstant 560: OpVariable: 477: var560: storage class: UniformConstant 561: OpConstant: 140 const561 = 0x4 562: OpTypeArray: ???[]: length id: 561, element type id: 8 563: OpTypePointer: ???Ptr: storage class: UniformConstant 564: OpVariable: 563: var564: storage class: UniformConstant 565: OpTypeImage: Image(6): 2D, no-depth, sampled, ReadOnly 566: OpTypeSampledImage: SampledImage(565) 567: OpTypePointer: ???Ptr: storage class: UniformConstant 568: OpVariable: 567: var568: storage class: UniformConstant 569: OpVariable: 567: var569: storage class: UniformConstant 570: OpVariable: 567: var570: storage class: UniformConstant 571: OpVariable: 567: var571: storage class: UniformConstant 4: OpFunction: func4(type: 3) 5: OpLabel: 545: OpVariable: 83: var545: storage class: Function 548: OpVariable: 83: var548: storage class: Function 549: OpVariable: 46: var549: storage class: Function 550: OpLoad: 82: tmp550 << 547 551: OpVectorShuffle: 45: tmp551 << 550, 550, 0, 1 OpStore: : 551 >> 549 552: OpFunctionCall: 2: tmp552(548, 549) 553: OpLoad: 82: tmp553 << 548 OpStore: : 553 >> 545 556: OpLoad: 82: tmp556 << 545 OpStore: : 556 >> 555 OpReturn: OpFunctionEnd: 12: OpFunction: func12(type: 10) 11: OpFunctionParameter: 7: var11: storage class: Function 13: OpLabel: 89: OpVariable: 7: var89: storage class: Function 92: OpVariable: 7: var92: storage class: Function 90: OpLoad: 6: tmp90 << 11 91: OpExtInst(14): 6: tmp91 << 90 OpStore: : 91 >> 89 93: OpLoad: 6: tmp93 << 11 94: OpExtInst(13): 6: tmp94 << 93 OpStore: : 94 >> 92 98: OpLoad: 6: tmp98 << 89 99: OpLoad: 6: tmp99 << 92 100: OpFNegate: 6: tmp100 << 99 101: OpCompositeConstruct: 8: tmp101 << 96, 98, 100 102: OpLoad: 6: tmp102 << 92 103: OpLoad: 6: tmp103 << 89 104: OpCompositeConstruct: 8: tmp104 << 96, 102, 103 105: OpCompositeExtract: 6: tmp105 << 97, 0 106: OpCompositeExtract: 6: tmp106 << 97, 1 107: OpCompositeExtract: 6: tmp107 << 97, 2 108: OpCompositeExtract: 6: tmp108 << 101, 0 109: OpCompositeExtract: 6: tmp109 << 101, 1 110: OpCompositeExtract: 6: tmp110 << 101, 2 111: OpCompositeExtract: 6: tmp111 << 104, 0 112: OpCompositeExtract: 6: tmp112 << 104, 1 113: OpCompositeExtract: 6: tmp113 << 104, 2 114: OpCompositeConstruct: 8: tmp114 << 105, 106, 107 115: OpCompositeConstruct: 8: tmp115 << 108, 109, 110 116: OpCompositeConstruct: 8: tmp116 << 111, 112, 113 117: OpCompositeConstruct: 9: tmp117 << 114, 115, 116 OpReturnValue: : << 117 OpFunctionEnd: 17: OpFunction: func17(type: 14) 15: OpFunctionParameter: 7: var15: storage class: Function 16: OpFunctionParameter: 7: var16: storage class: Function 18: OpLabel: 120: OpLoad: 6: tmp120 << 15 121: OpLoad: 6: tmp121 << 16 122: OpExtInst(40): 6: tmp122 << 120, 121 OpReturnValue: : << 122 OpFunctionEnd: 21: OpFunction: func21(type: 14) 19: OpFunctionParameter: 7: var19: storage class: Function 20: OpFunctionParameter: 7: var20: storage class: Function 22: OpLabel: 125: OpLoad: 6: tmp125 << 19 126: OpLoad: 6: tmp126 << 20 127: OpFNegate: 6: tmp127 << 126 128: OpExtInst(40): 6: tmp128 << 125, 127 OpReturnValue: : << 128 OpFunctionEnd: 27: OpFunction: func27(type: 24) 25: OpFunctionParameter: 23: var25: storage class: Function 26: OpFunctionParameter: 23: var26: storage class: Function 28: OpLabel: 131: OpVariable: 23: var131: storage class: Function 139: OpVariable: 7: var139: storage class: Function 153: OpVariable: 7: var153: storage class: Function 132: OpLoad: 8: tmp132 << 25 133: OpExtInst(4): 8: tmp133 << 132 134: OpLoad: 8: tmp134 << 26 136: OpCompositeConstruct: 8: tmp136 << 135, 135, 135 137: OpFDiv: 8: tmp137 << 134, 136 138: OpFSub: 8: tmp138 << 133, 137 OpStore: : 138 >> 131 142: OpAccessChain: 7: 131[141] 143: OpLoad: 6: tmp143 << 142 145: OpAccessChain: 7: 131[144] 146: OpLoad: 6: tmp146 << 145 148: OpAccessChain: 7: 131[147] 149: OpLoad: 6: tmp149 << 148 150: OpExtInst(40): 6: tmp150 << 146, 149 151: OpExtInst(40): 6: tmp151 << 143, 150 152: OpExtInst(37): 6: tmp152 << 151, 96 OpStore: : 152 >> 139 154: OpLoad: 8: tmp154 << 131 155: OpCompositeConstruct: 8: tmp155 << 96, 96, 96 156: OpExtInst(40): 8: tmp156 << 154, 155 157: OpExtInst(66): 6: tmp157 << 156 OpStore: : 157 >> 153 158: OpLoad: 6: tmp158 << 139 159: OpLoad: 6: tmp159 << 153 160: OpFAdd: 6: tmp160 << 158, 159 OpReturnValue: : << 160 OpFunctionEnd: 32: OpFunction: func32(type: 29) 30: OpFunctionParameter: 23: var30: storage class: Function 31: OpFunctionParameter: 7: var31: storage class: Function 33: OpLabel: 163: OpLoad: 8: tmp163 << 30 164: OpExtInst(66): 6: tmp164 << 163 165: OpLoad: 6: tmp165 << 31 166: OpFSub: 6: tmp166 << 164, 165 OpReturnValue: : << 166 OpFunctionEnd: 36: OpFunction: func36(type: 34) 35: OpFunctionParameter: 23: var35: storage class: Function 37: OpLabel: 169: OpVariable: 7: var169: storage class: Function 174: OpVariable: 7: var174: storage class: Function 179: OpVariable: 23: var179: storage class: Function 180: OpVariable: 23: var180: storage class: Function 182: OpVariable: 7: var182: storage class: Function 184: OpVariable: 23: var184: storage class: Function 186: OpVariable: 7: var186: storage class: Function 188: OpVariable: 7: var188: storage class: Function 190: OpVariable: 23: var190: storage class: Function 192: OpVariable: 7: var192: storage class: Function 194: OpVariable: 7: var194: storage class: Function 196: OpVariable: 7: var196: storage class: Function 199: OpVariable: 7: var199: storage class: Function 200: OpVariable: 7: var200: storage class: Function 170: OpLoad: 8: tmp170 << 35 171: OpAccessChain: 7: 35[141] 172: OpLoad: 6: tmp172 << 171 173: OpFMul: 6: tmp173 << 172, 95 OpStore: : 173 >> 174 175: OpFunctionCall: 9: tmp175(174) 176: OpVectorTimesMatrix: 8: tmp176 << 170, 175 OpStore: : 176 >> 179 OpStore: : 178 >> 180 181: OpFunctionCall: 6: tmp181(179, 180) OpStore: : 181 >> 169 185: OpLoad: 8: tmp185 << 35 OpStore: : 185 >> 184 OpStore: : 183 >> 186 187: OpFunctionCall: 6: tmp187(184, 186) OpStore: : 187 >> 182 191: OpLoad: 8: tmp191 << 35 OpStore: : 191 >> 190 OpStore: : 189 >> 192 193: OpFunctionCall: 6: tmp193(190, 192) OpStore: : 193 >> 188 195: OpLoad: 6: tmp195 << 169 OpStore: : 195 >> 194 197: OpLoad: 6: tmp197 << 182 OpStore: : 197 >> 196 198: OpFunctionCall: 6: tmp198(194, 196) OpStore: : 198 >> 199 201: OpLoad: 6: tmp201 << 188 OpStore: : 201 >> 200 202: OpFunctionCall: 6: tmp202(199, 200) OpReturnValue: : << 202 OpFunctionEnd: 43: OpFunction: func43(type: 38) 39: OpFunctionParameter: 23: var39: storage class: Function 40: OpFunctionParameter: 23: var40: storage class: Function 41: OpFunctionParameter: 7: var41: storage class: Function 42: OpFunctionParameter: 7: var42: storage class: Function 44: OpLabel: 205: OpVariable: 7: var205: storage class: Function 209: OpVariable: 208: var209: storage class: Function 220: OpVariable: 7: var220: storage class: Function 226: OpVariable: 23: var226: storage class: Function 206: OpLoad: 6: tmp206 << 41 OpStore: : 206 >> 205 OpStore: : 210 >> 209 OpBranch: to 211 211: OpLabel: OpLoopMerge: (merge: 213, continue: 214) OpBranch: to 215 215: OpLabel: 216: OpLoad: 207: tmp216 << 209 219: OpSLessThan: 218: tmp219 << 216, 217 OpBranchConditional: if(219) then branch to 212, else branch to 213 212: OpLabel: 221: OpLoad: 8: tmp221 << 39 222: OpLoad: 6: tmp222 << 205 223: OpLoad: 8: tmp223 << 40 224: OpVectorTimesScalar: 8: tmp224 << 223, 222 225: OpFAdd: 8: tmp225 << 221, 224 OpStore: : 225 >> 226 227: OpFunctionCall: 6: tmp227(226) OpStore: : 227 >> 220 228: OpLoad: 6: tmp228 << 220 230: OpFOrdLessThan: 218: tmp230 << 228, 229 OpSelectionMerge: (merge: 232) OpBranchConditional: if(230) then branch to 231, else branch to 232 231: OpLabel: 233: OpLoad: 6: tmp233 << 205 OpReturnValue: : << 233 232: OpLabel: 235: OpLoad: 6: tmp235 << 220 236: OpLoad: 6: tmp236 << 205 237: OpFAdd: 6: tmp237 << 236, 235 OpStore: : 237 >> 205 238: OpLoad: 6: tmp238 << 205 239: OpLoad: 6: tmp239 << 42 240: OpFOrdGreaterThanEqual: 218: tmp240 << 238, 239 OpSelectionMerge: (merge: 242) OpBranchConditional: if(240) then branch to 241, else branch to 242 241: OpLabel: 243: OpLoad: 6: tmp243 << 42 OpReturnValue: : << 243 242: OpLabel: OpBranch: to 214 214: OpLabel: 245: OpLoad: 207: tmp245 << 209 247: OpIAdd: 207: tmp247 << 245, 246 OpStore: : 247 >> 209 OpBranch: to 211 213: OpLabel: 248: OpLoad: 6: tmp248 << 42 OpReturnValue: : << 248 OpFunctionEnd: 51: OpFunction: func51(type: 47) 48: OpFunctionParameter: 7: var48: storage class: Function 49: OpFunctionParameter: 46: var49: storage class: Function 50: OpFunctionParameter: 46: var50: storage class: Function 52: OpLabel: 251: OpVariable: 46: var251: storage class: Function 257: OpVariable: 7: var257: storage class: Function 252: OpLoad: 45: tmp252 << 50 253: OpLoad: 45: tmp253 << 49 254: OpCompositeConstruct: 45: tmp254 << 135, 135 255: OpFDiv: 45: tmp255 << 253, 254 256: OpFSub: 45: tmp256 << 252, 255 OpStore: : 256 >> 251 258: OpAccessChain: 7: 49[144] 259: OpLoad: 6: tmp259 << 258 260: OpLoad: 6: tmp260 << 48 261: OpExtInst(11): 6: tmp261 << 260 262: OpFDiv: 6: tmp262 << 261, 135 263: OpExtInst(15): 6: tmp263 << 262 264: OpFDiv: 6: tmp264 << 259, 263 OpStore: : 264 >> 257 265: OpLoad: 45: tmp265 << 251 266: OpLoad: 6: tmp266 << 257 267: OpFNegate: 6: tmp267 << 266 268: OpCompositeExtract: 6: tmp268 << 265, 0 269: OpCompositeExtract: 6: tmp269 << 265, 1 270: OpCompositeConstruct: 8: tmp270 << 268, 269, 267 271: OpExtInst(69): 8: tmp271 << 270 OpReturnValue: : << 271 OpFunctionEnd: 55: OpFunction: func55(type: 53) 54: OpFunctionParameter: 23: var54: storage class: Function 56: OpLabel: 282: OpVariable: 23: var282: storage class: Function 292: OpVariable: 23: var292: storage class: Function 303: OpVariable: 23: var303: storage class: Function 313: OpVariable: 23: var313: storage class: Function 324: OpVariable: 23: var324: storage class: Function 334: OpVariable: 23: var334: storage class: Function 274: OpAccessChain: 7: 54[141] 275: OpLoad: 6: tmp275 << 274 276: OpFAdd: 6: tmp276 << 275, 229 277: OpAccessChain: 7: 54[144] 278: OpLoad: 6: tmp278 << 277 279: OpAccessChain: 7: 54[147] 280: OpLoad: 6: tmp280 << 279 281: OpCompositeConstruct: 8: tmp281 << 276, 278, 280 OpStore: : 281 >> 282 283: OpFunctionCall: 6: tmp283(282) 284: OpAccessChain: 7: 54[141] 285: OpLoad: 6: tmp285 << 284 286: OpFSub: 6: tmp286 << 285, 229 287: OpAccessChain: 7: 54[144] 288: OpLoad: 6: tmp288 << 287 289: OpAccessChain: 7: 54[147] 290: OpLoad: 6: tmp290 << 289 291: OpCompositeConstruct: 8: tmp291 << 286, 288, 290 OpStore: : 291 >> 292 293: OpFunctionCall: 6: tmp293(292) 294: OpFSub: 6: tmp294 << 283, 293 295: OpAccessChain: 7: 54[141] 296: OpLoad: 6: tmp296 << 295 297: OpAccessChain: 7: 54[144] 298: OpLoad: 6: tmp298 << 297 299: OpFAdd: 6: tmp299 << 298, 229 300: OpAccessChain: 7: 54[147] 301: OpLoad: 6: tmp301 << 300 302: OpCompositeConstruct: 8: tmp302 << 296, 299, 301 OpStore: : 302 >> 303 304: OpFunctionCall: 6: tmp304(303) 305: OpAccessChain: 7: 54[141] 306: OpLoad: 6: tmp306 << 305 307: OpAccessChain: 7: 54[144] 308: OpLoad: 6: tmp308 << 307 309: OpFSub: 6: tmp309 << 308, 229 310: OpAccessChain: 7: 54[147] 311: OpLoad: 6: tmp311 << 310 312: OpCompositeConstruct: 8: tmp312 << 306, 309, 311 OpStore: : 312 >> 313 314: OpFunctionCall: 6: tmp314(313) 315: OpFSub: 6: tmp315 << 304, 314 316: OpAccessChain: 7: 54[141] 317: OpLoad: 6: tmp317 << 316 318: OpAccessChain: 7: 54[144] 319: OpLoad: 6: tmp319 << 318 320: OpAccessChain: 7: 54[147] 321: OpLoad: 6: tmp321 << 320 322: OpFAdd: 6: tmp322 << 321, 229 323: OpCompositeConstruct: 8: tmp323 << 317, 319, 322 OpStore: : 323 >> 324 325: OpFunctionCall: 6: tmp325(324) 326: OpAccessChain: 7: 54[141] 327: OpLoad: 6: tmp327 << 326 328: OpAccessChain: 7: 54[144] 329: OpLoad: 6: tmp329 << 328 330: OpAccessChain: 7: 54[147] 331: OpLoad: 6: tmp331 << 330 332: OpFSub: 6: tmp332 << 331, 229 333: OpCompositeConstruct: 8: tmp333 << 327, 329, 332 OpStore: : 333 >> 334 335: OpFunctionCall: 6: tmp335(334) 336: OpFSub: 6: tmp336 << 325, 335 337: OpCompositeConstruct: 8: tmp337 << 294, 315, 336 338: OpExtInst(69): 8: tmp338 << 337 OpReturnValue: : << 338 OpFunctionEnd: 65: OpFunction: func65(type: 57) 58: OpFunctionParameter: 23: var58: storage class: Function 59: OpFunctionParameter: 23: var59: storage class: Function 60: OpFunctionParameter: 7: var60: storage class: Function 61: OpFunctionParameter: 23: var61: storage class: Function 62: OpFunctionParameter: 23: var62: storage class: Function 63: OpFunctionParameter: 23: var63: storage class: Function 64: OpFunctionParameter: 23: var64: storage class: Function 66: OpLabel: 341: OpVariable: 23: var341: storage class: Function 342: OpVariable: 23: var342: storage class: Function 345: OpVariable: 23: var345: storage class: Function 350: OpVariable: 23: var350: storage class: Function 355: OpVariable: 23: var355: storage class: Function 361: OpVariable: 7: var361: storage class: Function 365: OpVariable: 7: var365: storage class: Function 343: OpLoad: 8: tmp343 << 61 OpStore: : 343 >> 342 344: OpFunctionCall: 8: tmp344(342) OpStore: : 344 >> 341 346: OpLoad: 8: tmp346 << 63 347: OpLoad: 8: tmp347 << 61 348: OpFSub: 8: tmp348 << 346, 347 349: OpExtInst(69): 8: tmp349 << 348 OpStore: : 349 >> 345 351: OpLoad: 8: tmp351 << 62 352: OpLoad: 8: tmp352 << 61 353: OpFSub: 8: tmp353 << 351, 352 354: OpExtInst(69): 8: tmp354 << 353 OpStore: : 354 >> 350 356: OpLoad: 8: tmp356 << 345 357: OpFNegate: 8: tmp357 << 356 358: OpLoad: 8: tmp358 << 341 359: OpExtInst(71): 8: tmp359 << 357, 358 360: OpExtInst(69): 8: tmp360 << 359 OpStore: : 360 >> 355 362: OpLoad: 8: tmp362 << 345 363: OpLoad: 8: tmp363 << 341 364: OpDot: 6: tmp364 << 362, 363 OpStore: : 364 >> 361 366: OpLoad: 8: tmp366 << 355 367: OpLoad: 8: tmp367 << 350 368: OpDot: 6: tmp368 << 366, 367 OpStore: : 368 >> 365 369: OpLoad: 6: tmp369 << 361 370: OpFOrdLessThan: 218: tmp370 << 369, 96 OpSelectionMerge: (merge: 372) OpBranchConditional: if(370) then branch to 371, else branch to 372 371: OpLabel: OpReturnValue: : << 373 372: OpLabel: 375: OpLoad: 6: tmp375 << 365 376: OpFOrdLessThan: 218: tmp376 << 375, 96 OpSelectionMerge: (merge: 378) OpBranchConditional: if(376) then branch to 377, else branch to 378 377: OpLabel: 379: OpLoad: 8: tmp379 << 64 380: OpLoad: 8: tmp380 << 58 381: OpLoad: 6: tmp381 << 361 382: OpVectorTimesScalar: 8: tmp382 << 380, 381 383: OpFMul: 8: tmp383 << 379, 382 OpReturnValue: : << 383 378: OpLabel: 385: OpLoad: 8: tmp385 << 64 386: OpLoad: 8: tmp386 << 58 387: OpLoad: 6: tmp387 << 361 388: OpVectorTimesScalar: 8: tmp388 << 386, 387 389: OpLoad: 8: tmp389 << 59 390: OpLoad: 6: tmp390 << 365 391: OpLoad: 6: tmp391 << 60 392: OpExtInst(26): 6: tmp392 << 390, 391 393: OpVectorTimesScalar: 8: tmp393 << 389, 392 394: OpFAdd: 8: tmp394 << 388, 393 395: OpFMul: 8: tmp395 << 385, 394 OpReturnValue: : << 395 OpFunctionEnd: 74: OpFunction: func74(type: 67) 68: OpFunctionParameter: 23: var68: storage class: Function 69: OpFunctionParameter: 23: var69: storage class: Function 70: OpFunctionParameter: 23: var70: storage class: Function 71: OpFunctionParameter: 7: var71: storage class: Function 72: OpFunctionParameter: 23: var72: storage class: Function 73: OpFunctionParameter: 23: var73: storage class: Function 75: OpLabel: 398: OpVariable: 23: var398: storage class: Function 403: OpVariable: 23: var403: storage class: Function 407: OpVariable: 23: var407: storage class: Function 410: OpVariable: 23: var410: storage class: Function 412: OpVariable: 23: var412: storage class: Function 414: OpVariable: 7: var414: storage class: Function 416: OpVariable: 23: var416: storage class: Function 418: OpVariable: 23: var418: storage class: Function 420: OpVariable: 23: var420: storage class: Function 422: OpVariable: 23: var422: storage class: Function 401: OpLoad: 8: tmp401 << 68 402: OpFMul: 8: tmp402 << 400, 401 OpStore: : 402 >> 398 OpStore: : 406 >> 403 OpStore: : 409 >> 407 411: OpLoad: 8: tmp411 << 69 OpStore: : 411 >> 410 413: OpLoad: 8: tmp413 << 70 OpStore: : 413 >> 412 415: OpLoad: 6: tmp415 << 71 OpStore: : 415 >> 414 417: OpLoad: 8: tmp417 << 72 OpStore: : 417 >> 416 419: OpLoad: 8: tmp419 << 73 OpStore: : 419 >> 418 421: OpLoad: 8: tmp421 << 403 OpStore: : 421 >> 420 423: OpLoad: 8: tmp423 << 407 OpStore: : 423 >> 422 424: OpFunctionCall: 8: tmp424(410, 412, 414, 416, 418, 420, 422) 425: OpLoad: 8: tmp425 << 398 426: OpFAdd: 8: tmp426 << 425, 424 OpStore: : 426 >> 398 427: OpLoad: 8: tmp427 << 398 OpReturnValue: : << 427 OpFunctionEnd: 80: OpFunction: func80(type: 76) 77: OpFunctionParameter: 23: var77: storage class: Function 78: OpFunctionParameter: 23: var78: storage class: Function 79: OpFunctionParameter: 23: var79: storage class: Function 81: OpLabel: 430: OpVariable: 23: var430: storage class: Function 435: OpVariable: 23: var435: storage class: Function 439: OpVariable: 23: var439: storage class: Function 431: OpLoad: 8: tmp431 << 78 432: OpLoad: 8: tmp432 << 77 433: OpFSub: 8: tmp433 << 431, 432 434: OpExtInst(69): 8: tmp434 << 433 OpStore: : 434 >> 430 436: OpLoad: 8: tmp436 << 430 437: OpLoad: 8: tmp437 << 79 438: OpExtInst(68): 8: tmp438 << 436, 437 OpStore: : 438 >> 435 440: OpLoad: 8: tmp440 << 435 441: OpLoad: 8: tmp441 << 430 442: OpExtInst(68): 8: tmp442 << 440, 441 OpStore: : 442 >> 439 443: OpLoad: 8: tmp443 << 435 444: OpLoad: 8: tmp444 << 439 445: OpLoad: 8: tmp445 << 430 446: OpFNegate: 8: tmp446 << 445 447: OpCompositeExtract: 6: tmp447 << 443, 0 448: OpCompositeExtract: 6: tmp448 << 443, 1 449: OpCompositeExtract: 6: tmp449 << 443, 2 450: OpCompositeExtract: 6: tmp450 << 444, 0 451: OpCompositeExtract: 6: tmp451 << 444, 1 452: OpCompositeExtract: 6: tmp452 << 444, 2 453: OpCompositeExtract: 6: tmp453 << 446, 0 454: OpCompositeExtract: 6: tmp454 << 446, 1 455: OpCompositeExtract: 6: tmp455 << 446, 2 456: OpCompositeConstruct: 8: tmp456 << 447, 448, 449 457: OpCompositeConstruct: 8: tmp457 << 450, 451, 452 458: OpCompositeConstruct: 8: tmp458 << 453, 454, 455 459: OpCompositeConstruct: 9: tmp459 << 456, 457, 458 OpReturnValue: : << 459 OpFunctionEnd: 87: OpFunction: func87(type: 84) 85: OpFunctionParameter: 83: var85: storage class: Function 86: OpFunctionParameter: 46: var86: storage class: Function 88: OpLabel: 462: OpVariable: 23: var462: storage class: Function 466: OpVariable: 7: var466: storage class: Function 467: OpVariable: 46: var467: storage class: Function 470: OpVariable: 46: var470: storage class: Function 473: OpVariable: 23: var473: storage class: Function 486: OpVariable: 485: var486: storage class: Function 488: OpVariable: 23: var488: storage class: Function 490: OpVariable: 23: var490: storage class: Function 491: OpVariable: 23: var491: storage class: Function 493: OpVariable: 23: var493: storage class: Function 497: OpVariable: 7: var497: storage class: Function 499: OpVariable: 23: var499: storage class: Function 501: OpVariable: 23: var501: storage class: Function 503: OpVariable: 7: var503: storage class: Function 504: OpVariable: 7: var504: storage class: Function 513: OpVariable: 23: var513: storage class: Function 519: OpVariable: 23: var519: storage class: Function 520: OpVariable: 23: var520: storage class: Function 522: OpVariable: 23: var522: storage class: Function 524: OpVariable: 7: var524: storage class: Function 526: OpVariable: 23: var526: storage class: Function 527: OpVariable: 23: var527: storage class: Function 529: OpVariable: 23: var529: storage class: Function 531: OpVariable: 23: var531: storage class: Function 533: OpVariable: 7: var533: storage class: Function 535: OpVariable: 23: var535: storage class: Function 537: OpVariable: 23: var537: storage class: Function OpStore: : 463 >> 466 468: OpLoad: 8: tmp468 << 465 469: OpVectorShuffle: 45: tmp469 << 468, 468, 0, 1 OpStore: : 469 >> 467 471: OpLoad: 45: tmp471 << 86 OpStore: : 471 >> 470 472: OpFunctionCall: 8: tmp472(466, 467, 470) OpStore: : 472 >> 462 479: OpLoad: 6: tmp479 << 478 480: OpFMul: 6: tmp480 << 476, 479 481: OpExtInst(13): 6: tmp481 << 480 482: OpFMul: 6: tmp482 << 475, 481 484: OpCompositeConstruct: 8: tmp484 << 474, 482, 483 OpStore: : 484 >> 473 489: OpLoad: 8: tmp489 << 473 OpStore: : 489 >> 488 OpStore: : 373 >> 490 OpStore: : 487 >> 491 492: OpFunctionCall: 9: tmp492(488, 490, 491) OpStore: : 492 >> 486 494: OpLoad: 9: tmp494 << 486 495: OpLoad: 8: tmp495 << 462 496: OpMatrixTimesVector: 8: tmp496 << 494, 495 OpStore: : 496 >> 493 500: OpLoad: 8: tmp500 << 473 OpStore: : 500 >> 499 502: OpLoad: 8: tmp502 << 493 OpStore: : 502 >> 501 OpStore: : 96 >> 503 OpStore: : 498 >> 504 505: OpFunctionCall: 6: tmp505(499, 501, 503, 504) OpStore: : 505 >> 497 506: OpLoad: 6: tmp506 << 497 508: OpFOrdGreaterThan: 218: tmp508 << 506, 507 OpSelectionMerge: (merge: 510) OpBranchConditional: if(508) then branch to 509, else branch to 510 509: OpLabel: OpStore: : 511 >> 85 OpReturn: 510: OpLabel: 514: OpLoad: 8: tmp514 << 473 515: OpLoad: 6: tmp515 << 497 516: OpLoad: 8: tmp516 << 493 517: OpVectorTimesScalar: 8: tmp517 << 516, 515 518: OpFAdd: 8: tmp518 << 514, 517 OpStore: : 518 >> 513 OpStore: : 400 >> 519 521: OpLoad: 8: tmp521 << 519 OpStore: : 521 >> 520 OpStore: : 523 >> 522 OpStore: : 525 >> 524 528: OpLoad: 8: tmp528 << 519 OpStore: : 528 >> 527 530: OpLoad: 8: tmp530 << 520 OpStore: : 530 >> 529 532: OpLoad: 8: tmp532 << 522 OpStore: : 532 >> 531 534: OpLoad: 6: tmp534 << 524 OpStore: : 534 >> 533 536: OpLoad: 8: tmp536 << 513 OpStore: : 536 >> 535 538: OpLoad: 8: tmp538 << 473 OpStore: : 538 >> 537 539: OpFunctionCall: 8: tmp539(527, 529, 531, 533, 535, 537) OpStore: : 539 >> 526 540: OpLoad: 8: tmp540 << 526 541: OpCompositeExtract: 6: tmp541 << 540, 0 542: OpCompositeExtract: 6: tmp542 << 540, 1 543: OpCompositeExtract: 6: tmp543 << 540, 2 544: OpCompositeConstruct: 82: tmp544 << 541, 542, 543, 95 OpStore: : 544 >> 85 OpReturn: OpFunctionEnd: Linking the instructions Initial Disassembly: Module Info: OpSource: : ESSL ver 310 1: OpExtInstImport: : GLSL.std.450 OpMemoryModel: : addressing: Logical, memory: GLSL450 Capabilities: OpCapability: : Shader Inputs: 547: OpVariable: FloatVector4*: gl_FragCoord: storage class: Input Decorators: BuiltIn(FragCoord) Outputs: 555: OpVariable: FloatVector4*: finalColor: storage class: Output Uniform Constants: 465: OpVariable: FloatVector3*: iResolution: storage class: UniformConstant 478: OpVariable: Float*: iTime: storage class: UniformConstant 558: OpVariable: FloatVector4*: iMouse: storage class: UniformConstant 559: OpVariable: FloatVector4*: iDate: storage class: UniformConstant 560: OpVariable: Float*: iFrame: storage class: UniformConstant 564: OpVariable: FloatVector3[4]*: iChannelResolution: storage class: UniformConstant Textures: 568: OpVariable: SampledImage(Image(Float))*: iChannel0: storage class: UniformConstant Decorators: RelaxedPrecision, DescriptorSet(0) 569: OpVariable: SampledImage(Image(Float))*: iChannel1: storage class: UniformConstant Decorators: RelaxedPrecision, DescriptorSet(0) 570: OpVariable: SampledImage(Image(Float))*: iChannel2: storage class: UniformConstant Decorators: RelaxedPrecision, DescriptorSet(0) 571: OpVariable: SampledImage(Image(Float))*: iChannel3: storage class: UniformConstant Decorators: RelaxedPrecision, DescriptorSet(0) Entry Points: 4: OpEntryPoint: : main, execution model: Fragment, Function: Void main(), OriginLowerLeft Constants: 95: OpConstant: Float const95 = 1 96: OpConstant: Float const96 = 0 97: OpConstantComposite: FloatVector3 const97 = {1, 0, 0} 135: OpConstant: Float const135 = 2 141: OpConstant: UInt const141 = 0 144: OpConstant: UInt const144 = 1 147: OpConstant: UInt const147 = 2 177: OpConstant: Float const177 = 1.8 178: OpConstantComposite: FloatVector3 const178 = {1.8, 1.8, 1.8} 183: OpConstant: Float const183 = 1.1 189: OpConstant: Float const189 = 1.2 210: OpConstant: Int const210 = 0 217: OpConstant: Int const217 = 255 Decorators: RelaxedPrecision 229: OpConstant: Float const229 = 0.0001 246: OpConstant: Int const246 = 1 373: OpConstantComposite: FloatVector3 const373 = {0, 0, 0} 399: OpConstant: Float const399 = 0.5 400: OpConstantComposite: FloatVector3 const400 = {0.5, 0.5, 0.5} 404: OpConstant: Float const404 = 6 405: OpConstant: Float const405 = 4 406: OpConstantComposite: FloatVector3 const406 = {6, 2, 4} 408: OpConstant: Float const408 = 0.4 409: OpConstantComposite: FloatVector3 const409 = {0.4, 0.4, 0.4} 463: OpConstant: Float const463 = 45 474: OpConstant: Float const474 = 8 475: OpConstant: Float const475 = 5 476: OpConstant: Float const476 = 0.2 483: OpConstant: Float const483 = 7 487: OpConstantComposite: FloatVector3 const487 = {0, 1, 0} 498: OpConstant: Float const498 = 100 507: OpConstant: Float const507 = 99.9999 511: OpConstantComposite: FloatVector4 const511 = {0, 0, 0, 0} 523: OpConstantComposite: FloatVector3 const523 = {1, 1, 1} 525: OpConstant: Float const525 = 10 561: OpConstant: UInt const561 = 4 Disassembled Code: 4: OpFunction: Void main() 545: OpVariable: FloatVector4*: color: storage class: Function 548: OpVariable: FloatVector4*: param548: storage class: Function 549: OpVariable: FloatVector2*: param549: storage class: Function 5: lb5: 550: OpLoad: FloatVector4: tmp550 << gl_FragCoord 551: OpVectorShuffle: FloatVector2: tmp551 << tmp550, tmp550, 0, 1 OpStore: : tmp551 >> param549 552: OpFunctionCall: Void: mainImage(vf4;vf2;(param548, param549) 553: OpLoad: FloatVector4: tmp553 << param548 OpStore: : tmp553 >> color 556: OpLoad: FloatVector4: tmp556 << color OpStore: : tmp556 >> finalColor OpReturn: 12: OpFunction: FloatMatrix3x3 rotateX(f1;(Float* theta) 89: OpVariable: Float*: c: storage class: Function 92: OpVariable: Float*: s: storage class: Function 13: lb13: 90: OpLoad: Float: tmp90 << theta 91: OpExtInst(Cos): Float: tmp91 << tmp90 OpStore: : tmp91 >> c 93: OpLoad: Float: tmp93 << theta 94: OpExtInst(Sin): Float: tmp94 << tmp93 OpStore: : tmp94 >> s 98: OpLoad: Float: tmp98 << c 99: OpLoad: Float: tmp99 << s 100: OpFNegate: Float: tmp100 << tmp99 101: OpCompositeConstruct: FloatVector3: tmp101 << const96, tmp98, tmp100 102: OpLoad: Float: tmp102 << s 103: OpLoad: Float: tmp103 << c 104: OpCompositeConstruct: FloatVector3: tmp104 << const96, tmp102, tmp103 105: OpCompositeExtract: Float: tmp105 << const97, 0 106: OpCompositeExtract: Float: tmp106 << const97, 1 107: OpCompositeExtract: Float: tmp107 << const97, 2 108: OpCompositeExtract: Float: tmp108 << tmp101, 0 109: OpCompositeExtract: Float: tmp109 << tmp101, 1 110: OpCompositeExtract: Float: tmp110 << tmp101, 2 111: OpCompositeExtract: Float: tmp111 << tmp104, 0 112: OpCompositeExtract: Float: tmp112 << tmp104, 1 113: OpCompositeExtract: Float: tmp113 << tmp104, 2 114: OpCompositeConstruct: FloatVector3: tmp114 << tmp105, tmp106, tmp107 115: OpCompositeConstruct: FloatVector3: tmp115 << tmp108, tmp109, tmp110 116: OpCompositeConstruct: FloatVector3: tmp116 << tmp111, tmp112, tmp113 117: OpCompositeConstruct: FloatMatrix3x3: tmp117 << tmp114, tmp115, tmp116 OpReturnValue: : << tmp117 17: OpFunction: Float intersectSDF(f1;f1;(Float* distA, Float* distB) 18: lb18: 120: OpLoad: Float: tmp120 << distA 121: OpLoad: Float: tmp121 << distB 122: OpExtInst(FMax): Float: tmp122 << tmp120, tmp121 OpReturnValue: : << tmp122 21: OpFunction: Float differenceSDF(f1;f1;(Float* distA, Float* distB) 22: lb22: 125: OpLoad: Float: tmp125 << distA 126: OpLoad: Float: tmp126 << distB 127: OpFNegate: Float: tmp127 << tmp126 128: OpExtInst(FMax): Float: tmp128 << tmp125, tmp127 OpReturnValue: : << tmp128 27: OpFunction: Float boxSDF(vf3;vf3;(FloatVector3* p, FloatVector3* size) 131: OpVariable: FloatVector3*: d: storage class: Function 139: OpVariable: Float*: insideDistance: storage class: Function 153: OpVariable: Float*: outsideDistance: storage class: Function 28: lb28: 132: OpLoad: FloatVector3: tmp132 << p 133: OpExtInst(FAbs): FloatVector3: tmp133 << tmp132 134: OpLoad: FloatVector3: tmp134 << size 136: OpCompositeConstruct: FloatVector3: tmp136 << const135, const135, const135 137: OpFDiv: FloatVector3: tmp137 << tmp134, tmp136 138: OpFSub: FloatVector3: tmp138 << tmp133, tmp137 OpStore: : tmp138 >> d 142: OpAccessChain: Float*: d[0] 143: OpLoad: Float: tmp143 << d[0] 145: OpAccessChain: Float*: d[1] 146: OpLoad: Float: tmp146 << d[1] 148: OpAccessChain: Float*: d[2] 149: OpLoad: Float: tmp149 << d[2] 150: OpExtInst(FMax): Float: tmp150 << tmp146, tmp149 151: OpExtInst(FMax): Float: tmp151 << tmp143, tmp150 152: OpExtInst(FMin): Float: tmp152 << tmp151, const96 OpStore: : tmp152 >> insideDistance 154: OpLoad: FloatVector3: tmp154 << d 155: OpCompositeConstruct: FloatVector3: tmp155 << const96, const96, const96 156: OpExtInst(FMax): FloatVector3: tmp156 << tmp154, tmp155 157: OpExtInst(Length): Float: tmp157 << tmp156 OpStore: : tmp157 >> outsideDistance 158: OpLoad: Float: tmp158 << insideDistance 159: OpLoad: Float: tmp159 << outsideDistance 160: OpFAdd: Float: tmp160 << tmp158, tmp159 OpReturnValue: : << tmp160 32: OpFunction: Float sphereSDF(vf3;f1;(FloatVector3* p, Float* r) 33: lb33: 163: OpLoad: FloatVector3: tmp163 << p 164: OpExtInst(Length): Float: tmp164 << tmp163 165: OpLoad: Float: tmp165 << r 166: OpFSub: Float: tmp166 << tmp164, tmp165 OpReturnValue: : << tmp166 36: OpFunction: Float sceneSDF(vf3;(FloatVector3* samplePoint) 169: OpVariable: Float*: cube: storage class: Function 174: OpVariable: Float*: param174: storage class: Function 179: OpVariable: FloatVector3*: param179: storage class: Function 180: OpVariable: FloatVector3*: param180: storage class: Function 182: OpVariable: Float*: sphere: storage class: Function 184: OpVariable: FloatVector3*: param184: storage class: Function 186: OpVariable: Float*: param186: storage class: Function 188: OpVariable: Float*: bigSphere: storage class: Function 190: OpVariable: FloatVector3*: param190: storage class: Function 192: OpVariable: Float*: param192: storage class: Function 194: OpVariable: Float*: param194: storage class: Function 196: OpVariable: Float*: param196: storage class: Function 199: OpVariable: Float*: param199: storage class: Function 200: OpVariable: Float*: param200: storage class: Function 37: lb37: 170: OpLoad: FloatVector3: tmp170 << samplePoint 171: OpAccessChain: Float*: samplePoint[0] 172: OpLoad: Float: tmp172 << samplePoint[0] 173: OpFMul: Float: tmp173 << tmp172, const95 OpStore: : tmp173 >> param174 175: OpFunctionCall: FloatMatrix3x3: rotateX(f1;(param174) 176: OpVectorTimesMatrix: FloatVector3: tmp176 << tmp170, rotateX(f1; OpStore: : tmp176 >> param179 OpStore: : const178 >> param180 181: OpFunctionCall: Float: boxSDF(vf3;vf3;(param179, param180) OpStore: : boxSDF(vf3;vf3; >> cube 185: OpLoad: FloatVector3: tmp185 << samplePoint OpStore: : tmp185 >> param184 OpStore: : const183 >> param186 187: OpFunctionCall: Float: sphereSDF(vf3;f1;(param184, param186) OpStore: : sphereSDF(vf3;f1; >> sphere 191: OpLoad: FloatVector3: tmp191 << samplePoint OpStore: : tmp191 >> param190 OpStore: : const189 >> param192 193: OpFunctionCall: Float: sphereSDF(vf3;f1;(param190, param192) OpStore: : sphereSDF(vf3;f1; >> bigSphere 195: OpLoad: Float: tmp195 << cube OpStore: : tmp195 >> param194 197: OpLoad: Float: tmp197 << sphere OpStore: : tmp197 >> param196 198: OpFunctionCall: Float: differenceSDF(f1;f1;(param194, param196) OpStore: : differenceSDF(f1;f1; >> param199 201: OpLoad: Float: tmp201 << bigSphere OpStore: : tmp201 >> param200 202: OpFunctionCall: Float: intersectSDF(f1;f1;(param199, param200) OpReturnValue: : << intersectSDF(f1;f1; 43: OpFunction: Float shortestDistanceToSurface(vf3;vf3;f1;f1;(FloatVector3* eye, FloatVector3* marchingDirection, Float* start, Float* end) 205: OpVariable: Float*: depth: storage class: Function 209: OpVariable: Int*: i: storage class: Function Decorators: RelaxedPrecision 220: OpVariable: Float*: dist: storage class: Function 226: OpVariable: FloatVector3*: param226: storage class: Function 44: lb44: 206: OpLoad: Float: tmp206 << start OpStore: : tmp206 >> depth OpStore: : const210 >> i OpBranch: to lb211 211: lb211: OpLoopMerge: (merge: lb213, continue: lb214) OpBranch: to lb215 215: lb215: 216: OpLoad: Int: tmp216 << i Decorators: RelaxedPrecision 219: OpSLessThan: Bool: tmp219 << tmp216, const217 OpBranchConditional: if(tmp219) then branch to lb212, else branch to lb213 212: lb212: 221: OpLoad: FloatVector3: tmp221 << eye 222: OpLoad: Float: tmp222 << depth 223: OpLoad: FloatVector3: tmp223 << marchingDirection 224: OpVectorTimesScalar: FloatVector3: tmp224 << tmp223, tmp222 225: OpFAdd: FloatVector3: tmp225 << tmp221, tmp224 OpStore: : tmp225 >> param226 227: OpFunctionCall: Float: sceneSDF(vf3;(param226) OpStore: : sceneSDF(vf3; >> dist 228: OpLoad: Float: tmp228 << dist 230: OpFOrdLessThan: Bool: tmp230 << tmp228, const229 OpSelectionMerge: (merge: lb232) OpBranchConditional: if(tmp230) then branch to lb231, else branch to lb232 231: lb231: 233: OpLoad: Float: tmp233 << depth OpReturnValue: : << tmp233 232: lb232: 235: OpLoad: Float: tmp235 << dist 236: OpLoad: Float: tmp236 << depth 237: OpFAdd: Float: tmp237 << tmp236, tmp235 OpStore: : tmp237 >> depth 238: OpLoad: Float: tmp238 << depth 239: OpLoad: Float: tmp239 << end 240: OpFOrdGreaterThanEqual: Bool: tmp240 << tmp238, tmp239 OpSelectionMerge: (merge: lb242) OpBranchConditional: if(tmp240) then branch to lb241, else branch to lb242 241: lb241: 243: OpLoad: Float: tmp243 << end OpReturnValue: : << tmp243 242: lb242: OpBranch: to lb214 214: lb214: 245: OpLoad: Int: tmp245 << i Decorators: RelaxedPrecision 247: OpIAdd: Int: tmp247 << tmp245, const246 Decorators: RelaxedPrecision OpStore: : tmp247 >> i OpBranch: to lb211 213: lb213: 248: OpLoad: Float: tmp248 << end OpReturnValue: : << tmp248 51: OpFunction: FloatVector3 rayDirection(f1;vf2;vf2;(Float* fieldOfView, FloatVector2* size, FloatVector2* fragCoord) 251: OpVariable: FloatVector2*: xy: storage class: Function 257: OpVariable: Float*: z: storage class: Function 52: lb52: 252: OpLoad: FloatVector2: tmp252 << fragCoord 253: OpLoad: FloatVector2: tmp253 << size 254: OpCompositeConstruct: FloatVector2: tmp254 << const135, const135 255: OpFDiv: FloatVector2: tmp255 << tmp253, tmp254 256: OpFSub: FloatVector2: tmp256 << tmp252, tmp255 OpStore: : tmp256 >> xy 258: OpAccessChain: Float*: size[1] 259: OpLoad: Float: tmp259 << size[1] 260: OpLoad: Float: tmp260 << fieldOfView 261: OpExtInst(Radians): Float: tmp261 << tmp260 262: OpFDiv: Float: tmp262 << tmp261, const135 263: OpExtInst(Tan): Float: tmp263 << tmp262 264: OpFDiv: Float: tmp264 << tmp259, tmp263 OpStore: : tmp264 >> z 265: OpLoad: FloatVector2: tmp265 << xy 266: OpLoad: Float: tmp266 << z 267: OpFNegate: Float: tmp267 << tmp266 268: OpCompositeExtract: Float: tmp268 << tmp265, 0 269: OpCompositeExtract: Float: tmp269 << tmp265, 1 270: OpCompositeConstruct: FloatVector3: tmp270 << tmp268, tmp269, tmp267 271: OpExtInst(Normalize): FloatVector3: tmp271 << tmp270 OpReturnValue: : << tmp271 55: OpFunction: FloatVector3 estimateNormal(vf3;(FloatVector3* p) 282: OpVariable: FloatVector3*: param282: storage class: Function 292: OpVariable: FloatVector3*: param292: storage class: Function 303: OpVariable: FloatVector3*: param303: storage class: Function 313: OpVariable: FloatVector3*: param313: storage class: Function 324: OpVariable: FloatVector3*: param324: storage class: Function 334: OpVariable: FloatVector3*: param334: storage class: Function 56: lb56: 274: OpAccessChain: Float*: p[0] 275: OpLoad: Float: tmp275 << p[0] 276: OpFAdd: Float: tmp276 << tmp275, const229 277: OpAccessChain: Float*: p[1] 278: OpLoad: Float: tmp278 << p[1] 279: OpAccessChain: Float*: p[2] 280: OpLoad: Float: tmp280 << p[2] 281: OpCompositeConstruct: FloatVector3: tmp281 << tmp276, tmp278, tmp280 OpStore: : tmp281 >> param282 283: OpFunctionCall: Float: sceneSDF(vf3;(param282) 284: OpAccessChain: Float*: p[0] 285: OpLoad: Float: tmp285 << p[0] 286: OpFSub: Float: tmp286 << tmp285, const229 287: OpAccessChain: Float*: p[1] 288: OpLoad: Float: tmp288 << p[1] 289: OpAccessChain: Float*: p[2] 290: OpLoad: Float: tmp290 << p[2] 291: OpCompositeConstruct: FloatVector3: tmp291 << tmp286, tmp288, tmp290 OpStore: : tmp291 >> param292 293: OpFunctionCall: Float: sceneSDF(vf3;(param292) 294: OpFSub: Float: tmp294 << sceneSDF(vf3;, sceneSDF(vf3; 295: OpAccessChain: Float*: p[0] 296: OpLoad: Float: tmp296 << p[0] 297: OpAccessChain: Float*: p[1] 298: OpLoad: Float: tmp298 << p[1] 299: OpFAdd: Float: tmp299 << tmp298, const229 300: OpAccessChain: Float*: p[2] 301: OpLoad: Float: tmp301 << p[2] 302: OpCompositeConstruct: FloatVector3: tmp302 << tmp296, tmp299, tmp301 OpStore: : tmp302 >> param303 304: OpFunctionCall: Float: sceneSDF(vf3;(param303) 305: OpAccessChain: Float*: p[0] 306: OpLoad: Float: tmp306 << p[0] 307: OpAccessChain: Float*: p[1] 308: OpLoad: Float: tmp308 << p[1] 309: OpFSub: Float: tmp309 << tmp308, const229 310: OpAccessChain: Float*: p[2] 311: OpLoad: Float: tmp311 << p[2] 312: OpCompositeConstruct: FloatVector3: tmp312 << tmp306, tmp309, tmp311 OpStore: : tmp312 >> param313 314: OpFunctionCall: Float: sceneSDF(vf3;(param313) 315: OpFSub: Float: tmp315 << sceneSDF(vf3;, sceneSDF(vf3; 316: OpAccessChain: Float*: p[0] 317: OpLoad: Float: tmp317 << p[0] 318: OpAccessChain: Float*: p[1] 319: OpLoad: Float: tmp319 << p[1] 320: OpAccessChain: Float*: p[2] 321: OpLoad: Float: tmp321 << p[2] 322: OpFAdd: Float: tmp322 << tmp321, const229 323: OpCompositeConstruct: FloatVector3: tmp323 << tmp317, tmp319, tmp322 OpStore: : tmp323 >> param324 325: OpFunctionCall: Float: sceneSDF(vf3;(param324) 326: OpAccessChain: Float*: p[0] 327: OpLoad: Float: tmp327 << p[0] 328: OpAccessChain: Float*: p[1] 329: OpLoad: Float: tmp329 << p[1] 330: OpAccessChain: Float*: p[2] 331: OpLoad: Float: tmp331 << p[2] 332: OpFSub: Float: tmp332 << tmp331, const229 333: OpCompositeConstruct: FloatVector3: tmp333 << tmp327, tmp329, tmp332 OpStore: : tmp333 >> param334 335: OpFunctionCall: Float: sceneSDF(vf3;(param334) 336: OpFSub: Float: tmp336 << sceneSDF(vf3;, sceneSDF(vf3; 337: OpCompositeConstruct: FloatVector3: tmp337 << tmp294, tmp315, tmp336 338: OpExtInst(Normalize): FloatVector3: tmp338 << tmp337 OpReturnValue: : << tmp338 65: OpFunction: FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;(FloatVector3* k_d, FloatVector3* k_s, Float* alpha, FloatVector3* p, FloatVector3* eye, FloatVector3* lightPos, FloatVector3* lightIntensity) 341: OpVariable: FloatVector3*: N: storage class: Function 342: OpVariable: FloatVector3*: param342: storage class: Function 345: OpVariable: FloatVector3*: L: storage class: Function 350: OpVariable: FloatVector3*: V: storage class: Function 355: OpVariable: FloatVector3*: R: storage class: Function 361: OpVariable: Float*: dotLN: storage class: Function 365: OpVariable: Float*: dotRV: storage class: Function 66: lb66: 343: OpLoad: FloatVector3: tmp343 << p OpStore: : tmp343 >> param342 344: OpFunctionCall: FloatVector3: estimateNormal(vf3;(param342) OpStore: : estimateNormal(vf3; >> N 346: OpLoad: FloatVector3: tmp346 << lightPos 347: OpLoad: FloatVector3: tmp347 << p 348: OpFSub: FloatVector3: tmp348 << tmp346, tmp347 349: OpExtInst(Normalize): FloatVector3: tmp349 << tmp348 OpStore: : tmp349 >> L 351: OpLoad: FloatVector3: tmp351 << eye 352: OpLoad: FloatVector3: tmp352 << p 353: OpFSub: FloatVector3: tmp353 << tmp351, tmp352 354: OpExtInst(Normalize): FloatVector3: tmp354 << tmp353 OpStore: : tmp354 >> V 356: OpLoad: FloatVector3: tmp356 << L 357: OpFNegate: FloatVector3: tmp357 << tmp356 358: OpLoad: FloatVector3: tmp358 << N 359: OpExtInst(Reflect): FloatVector3: tmp359 << tmp357, tmp358 360: OpExtInst(Normalize): FloatVector3: tmp360 << tmp359 OpStore: : tmp360 >> R 362: OpLoad: FloatVector3: tmp362 << L 363: OpLoad: FloatVector3: tmp363 << N 364: OpDot: Float: tmp364 << tmp362, tmp363 OpStore: : tmp364 >> dotLN 366: OpLoad: FloatVector3: tmp366 << R 367: OpLoad: FloatVector3: tmp367 << V 368: OpDot: Float: tmp368 << tmp366, tmp367 OpStore: : tmp368 >> dotRV 369: OpLoad: Float: tmp369 << dotLN 370: OpFOrdLessThan: Bool: tmp370 << tmp369, const96 OpSelectionMerge: (merge: lb372) OpBranchConditional: if(tmp370) then branch to lb371, else branch to lb372 371: lb371: OpReturnValue: : << const373 372: lb372: 375: OpLoad: Float: tmp375 << dotRV 376: OpFOrdLessThan: Bool: tmp376 << tmp375, const96 OpSelectionMerge: (merge: lb378) OpBranchConditional: if(tmp376) then branch to lb377, else branch to lb378 377: lb377: 379: OpLoad: FloatVector3: tmp379 << lightIntensity 380: OpLoad: FloatVector3: tmp380 << k_d 381: OpLoad: Float: tmp381 << dotLN 382: OpVectorTimesScalar: FloatVector3: tmp382 << tmp380, tmp381 383: OpFMul: FloatVector3: tmp383 << tmp379, tmp382 OpReturnValue: : << tmp383 378: lb378: 385: OpLoad: FloatVector3: tmp385 << lightIntensity 386: OpLoad: FloatVector3: tmp386 << k_d 387: OpLoad: Float: tmp387 << dotLN 388: OpVectorTimesScalar: FloatVector3: tmp388 << tmp386, tmp387 389: OpLoad: FloatVector3: tmp389 << k_s 390: OpLoad: Float: tmp390 << dotRV 391: OpLoad: Float: tmp391 << alpha 392: OpExtInst(Pow): Float: tmp392 << tmp390, tmp391 393: OpVectorTimesScalar: FloatVector3: tmp393 << tmp389, tmp392 394: OpFAdd: FloatVector3: tmp394 << tmp388, tmp393 395: OpFMul: FloatVector3: tmp395 << tmp385, tmp394 OpReturnValue: : << tmp395 74: OpFunction: FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;(FloatVector3* k_a, FloatVector3* k_d, FloatVector3* k_s, Float* alpha, FloatVector3* p, FloatVector3* eye) 398: OpVariable: FloatVector3*: color: storage class: Function 403: OpVariable: FloatVector3*: light1Pos: storage class: Function 407: OpVariable: FloatVector3*: light1Intensity: storage class: Function 410: OpVariable: FloatVector3*: param410: storage class: Function 412: OpVariable: FloatVector3*: param412: storage class: Function 414: OpVariable: Float*: param414: storage class: Function 416: OpVariable: FloatVector3*: param416: storage class: Function 418: OpVariable: FloatVector3*: param418: storage class: Function 420: OpVariable: FloatVector3*: param420: storage class: Function 422: OpVariable: FloatVector3*: param422: storage class: Function 75: lb75: 401: OpLoad: FloatVector3: tmp401 << k_a 402: OpFMul: FloatVector3: tmp402 << const400, tmp401 OpStore: : tmp402 >> color OpStore: : const406 >> light1Pos OpStore: : const409 >> light1Intensity 411: OpLoad: FloatVector3: tmp411 << k_d OpStore: : tmp411 >> param410 413: OpLoad: FloatVector3: tmp413 << k_s OpStore: : tmp413 >> param412 415: OpLoad: Float: tmp415 << alpha OpStore: : tmp415 >> param414 417: OpLoad: FloatVector3: tmp417 << p OpStore: : tmp417 >> param416 419: OpLoad: FloatVector3: tmp419 << eye OpStore: : tmp419 >> param418 421: OpLoad: FloatVector3: tmp421 << light1Pos OpStore: : tmp421 >> param420 423: OpLoad: FloatVector3: tmp423 << light1Intensity OpStore: : tmp423 >> param422 424: OpFunctionCall: FloatVector3: phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;(param410, param412, param414, param416, param418, param420, param422) 425: OpLoad: FloatVector3: tmp425 << color 426: OpFAdd: FloatVector3: tmp426 << tmp425, phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3; OpStore: : tmp426 >> color 427: OpLoad: FloatVector3: tmp427 << color OpReturnValue: : << tmp427 80: OpFunction: FloatMatrix3x3 viewMatrix(vf3;vf3;vf3;(FloatVector3* eye, FloatVector3* center, FloatVector3* up) 430: OpVariable: FloatVector3*: f: storage class: Function 435: OpVariable: FloatVector3*: s: storage class: Function 439: OpVariable: FloatVector3*: u: storage class: Function 81: lb81: 431: OpLoad: FloatVector3: tmp431 << center 432: OpLoad: FloatVector3: tmp432 << eye 433: OpFSub: FloatVector3: tmp433 << tmp431, tmp432 434: OpExtInst(Normalize): FloatVector3: tmp434 << tmp433 OpStore: : tmp434 >> f 436: OpLoad: FloatVector3: tmp436 << f 437: OpLoad: FloatVector3: tmp437 << up 438: OpExtInst(Cross): FloatVector3: tmp438 << tmp436, tmp437 OpStore: : tmp438 >> s 440: OpLoad: FloatVector3: tmp440 << s 441: OpLoad: FloatVector3: tmp441 << f 442: OpExtInst(Cross): FloatVector3: tmp442 << tmp440, tmp441 OpStore: : tmp442 >> u 443: OpLoad: FloatVector3: tmp443 << s 444: OpLoad: FloatVector3: tmp444 << u 445: OpLoad: FloatVector3: tmp445 << f 446: OpFNegate: FloatVector3: tmp446 << tmp445 447: OpCompositeExtract: Float: tmp447 << tmp443, 0 448: OpCompositeExtract: Float: tmp448 << tmp443, 1 449: OpCompositeExtract: Float: tmp449 << tmp443, 2 450: OpCompositeExtract: Float: tmp450 << tmp444, 0 451: OpCompositeExtract: Float: tmp451 << tmp444, 1 452: OpCompositeExtract: Float: tmp452 << tmp444, 2 453: OpCompositeExtract: Float: tmp453 << tmp446, 0 454: OpCompositeExtract: Float: tmp454 << tmp446, 1 455: OpCompositeExtract: Float: tmp455 << tmp446, 2 456: OpCompositeConstruct: FloatVector3: tmp456 << tmp447, tmp448, tmp449 457: OpCompositeConstruct: FloatVector3: tmp457 << tmp450, tmp451, tmp452 458: OpCompositeConstruct: FloatVector3: tmp458 << tmp453, tmp454, tmp455 459: OpCompositeConstruct: FloatMatrix3x3: tmp459 << tmp456, tmp457, tmp458 OpReturnValue: : << tmp459 87: OpFunction: Void mainImage(vf4;vf2;(FloatVector4* fragColor, FloatVector2* fragCoord) 462: OpVariable: FloatVector3*: viewDir: storage class: Function 466: OpVariable: Float*: param466: storage class: Function 467: OpVariable: FloatVector2*: param467: storage class: Function 470: OpVariable: FloatVector2*: param470: storage class: Function 473: OpVariable: FloatVector3*: eye: storage class: Function 486: OpVariable: FloatMatrix3x3*: viewToWorld: storage class: Function 488: OpVariable: FloatVector3*: param488: storage class: Function 490: OpVariable: FloatVector3*: param490: storage class: Function 491: OpVariable: FloatVector3*: param491: storage class: Function 493: OpVariable: FloatVector3*: worldDir: storage class: Function 497: OpVariable: Float*: dist: storage class: Function 499: OpVariable: FloatVector3*: param499: storage class: Function 501: OpVariable: FloatVector3*: param501: storage class: Function 503: OpVariable: Float*: param503: storage class: Function 504: OpVariable: Float*: param504: storage class: Function 513: OpVariable: FloatVector3*: p: storage class: Function 519: OpVariable: FloatVector3*: K_a: storage class: Function 520: OpVariable: FloatVector3*: K_d: storage class: Function 522: OpVariable: FloatVector3*: K_s: storage class: Function 524: OpVariable: Float*: shininess: storage class: Function 526: OpVariable: FloatVector3*: color: storage class: Function 527: OpVariable: FloatVector3*: param527: storage class: Function 529: OpVariable: FloatVector3*: param529: storage class: Function 531: OpVariable: FloatVector3*: param531: storage class: Function 533: OpVariable: Float*: param533: storage class: Function 535: OpVariable: FloatVector3*: param535: storage class: Function 537: OpVariable: FloatVector3*: param537: storage class: Function 88: lb88: OpStore: : const463 >> param466 468: OpLoad: FloatVector3: tmp468 << iResolution 469: OpVectorShuffle: FloatVector2: tmp469 << tmp468, tmp468, 0, 1 OpStore: : tmp469 >> param467 471: OpLoad: FloatVector2: tmp471 << fragCoord OpStore: : tmp471 >> param470 472: OpFunctionCall: FloatVector3: rayDirection(f1;vf2;vf2;(param466, param467, param470) OpStore: : rayDirection(f1;vf2;vf2; >> viewDir 479: OpLoad: Float: tmp479 << iTime 480: OpFMul: Float: tmp480 << const476, tmp479 481: OpExtInst(Sin): Float: tmp481 << tmp480 482: OpFMul: Float: tmp482 << const475, tmp481 484: OpCompositeConstruct: FloatVector3: tmp484 << const474, tmp482, const483 OpStore: : tmp484 >> eye 489: OpLoad: FloatVector3: tmp489 << eye OpStore: : tmp489 >> param488 OpStore: : const373 >> param490 OpStore: : const487 >> param491 492: OpFunctionCall: FloatMatrix3x3: viewMatrix(vf3;vf3;vf3;(param488, param490, param491) OpStore: : viewMatrix(vf3;vf3;vf3; >> viewToWorld 494: OpLoad: FloatMatrix3x3: tmp494 << viewToWorld 495: OpLoad: FloatVector3: tmp495 << viewDir 496: OpMatrixTimesVector: FloatVector3: tmp496 << tmp494, tmp495 OpStore: : tmp496 >> worldDir 500: OpLoad: FloatVector3: tmp500 << eye OpStore: : tmp500 >> param499 502: OpLoad: FloatVector3: tmp502 << worldDir OpStore: : tmp502 >> param501 OpStore: : const96 >> param503 OpStore: : const498 >> param504 505: OpFunctionCall: Float: shortestDistanceToSurface(vf3;vf3;f1;f1;(param499, param501, param503, param504) OpStore: : shortestDistanceToSurface(vf3;vf3;f1;f1; >> dist 506: OpLoad: Float: tmp506 << dist 508: OpFOrdGreaterThan: Bool: tmp508 << tmp506, const507 OpSelectionMerge: (merge: lb510) OpBranchConditional: if(tmp508) then branch to lb509, else branch to lb510 509: lb509: OpStore: : const511 >> fragColor OpReturn: 510: lb510: 514: OpLoad: FloatVector3: tmp514 << eye 515: OpLoad: Float: tmp515 << dist 516: OpLoad: FloatVector3: tmp516 << worldDir 517: OpVectorTimesScalar: FloatVector3: tmp517 << tmp516, tmp515 518: OpFAdd: FloatVector3: tmp518 << tmp514, tmp517 OpStore: : tmp518 >> p OpStore: : const400 >> K_a 521: OpLoad: FloatVector3: tmp521 << K_a OpStore: : tmp521 >> K_d OpStore: : const523 >> K_s OpStore: : const525 >> shininess 528: OpLoad: FloatVector3: tmp528 << K_a OpStore: : tmp528 >> param527 530: OpLoad: FloatVector3: tmp530 << K_d OpStore: : tmp530 >> param529 532: OpLoad: FloatVector3: tmp532 << K_s OpStore: : tmp532 >> param531 534: OpLoad: Float: tmp534 << shininess OpStore: : tmp534 >> param533 536: OpLoad: FloatVector3: tmp536 << p OpStore: : tmp536 >> param535 538: OpLoad: FloatVector3: tmp538 << eye OpStore: : tmp538 >> param537 539: OpFunctionCall: FloatVector3: phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;(param527, param529, param531, param533, param535, param537) OpStore: : phongIllumination(vf3;vf3;vf3;f1;vf3;vf3; >> color 540: OpLoad: FloatVector3: tmp540 << color 541: OpCompositeExtract: Float: tmp541 << tmp540, 0 542: OpCompositeExtract: Float: tmp542 << tmp540, 1 543: OpCompositeExtract: Float: tmp543 << tmp540, 2 544: OpCompositeConstruct: FloatVector4: tmp544 << tmp541, tmp542, tmp543, const95 OpStore: : tmp544 >> fragColor OpReturn: Performing hardware-independent optimization... Variable color Variable color is redundant. Removing both it and related Load/Store instructions. Variable param548 Variable param549 Removed 1 redundant local variables from function main Variable c Variable c is redundant. Removing both it and related Load/Store instructions. Variable s Variable s is redundant. Removing both it and related Load/Store instructions. Removed 2 redundant local variables from function rotateX(f1; Variable d Variable d is redundant. Removing both it and related Load/Store instructions. Variable insideDistance Variable insideDistance is redundant. Removing both it and related Load/Store instructions. Variable outsideDistance Variable outsideDistance is redundant. Removing both it and related Load/Store instructions. Removed 3 redundant local variables from function boxSDF(vf3;vf3; Variable cube Variable cube is redundant. Removing both it and related Load/Store instructions. Variable param174 Variable param179 Variable param180 Variable sphere Variable sphere is redundant. Removing both it and related Load/Store instructions. Variable param184 Variable param186 Variable bigSphere Variable bigSphere is redundant. Removing both it and related Load/Store instructions. Variable param190 Variable param192 Variable param194 Variable param196 Variable param199 Variable param200 Removed 3 redundant local variables from function sceneSDF(vf3; Variable depth Variable i Variable dist Variable dist is redundant. Removing both it and related Load/Store instructions. Variable param226 Removed 1 redundant local variables from function shortestDistanceToSurface(vf3;vf3;f1;f1; Variable xy Variable xy is redundant. Removing both it and related Load/Store instructions. Variable z Variable z is redundant. Removing both it and related Load/Store instructions. Removed 2 redundant local variables from function rayDirection(f1;vf2;vf2; Variable param282 Variable param292 Variable param303 Variable param313 Variable param324 Variable param334 Variable N Variable N is redundant. Removing both it and related Load/Store instructions. Variable param342 Variable L Variable L is redundant. Removing both it and related Load/Store instructions. Variable V Variable V is redundant. Removing both it and related Load/Store instructions. Variable R Variable R is redundant. Removing both it and related Load/Store instructions. Variable dotLN Variable dotLN is redundant. Removing both it and related Load/Store instructions. Variable dotRV Variable dotRV is redundant. Removing both it and related Load/Store instructions. Removed 6 redundant local variables from function phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3; Variable color Variable light1Pos Variable light1Pos is redundant. Removing both it and related Load/Store instructions. Variable light1Intensity Variable light1Intensity is redundant. Removing both it and related Load/Store instructions. Variable param410 Variable param412 Variable param414 Variable param416 Variable param418 Variable param420 Variable param422 Removed 2 redundant local variables from function phongIllumination(vf3;vf3;vf3;f1;vf3;vf3; Variable f Variable f is redundant. Removing both it and related Load/Store instructions. Variable s Variable s is redundant. Removing both it and related Load/Store instructions. Variable u Variable u is redundant. Removing both it and related Load/Store instructions. Removed 3 redundant local variables from function viewMatrix(vf3;vf3;vf3; Variable viewDir Variable viewDir is redundant. Removing both it and related Load/Store instructions. Variable param466 Variable param467 Variable param470 Variable eye Variable eye is redundant. Removing both it and related Load/Store instructions. Variable viewToWorld Variable viewToWorld is redundant. Removing both it and related Load/Store instructions. Variable param488 Variable param490 Variable param491 Variable worldDir Variable worldDir is redundant. Removing both it and related Load/Store instructions. Variable dist Variable dist is redundant. Removing both it and related Load/Store instructions. Variable param499 Variable param501 Variable param503 Variable param504 Variable p Variable p is redundant. Removing both it and related Load/Store instructions. Variable K_a Variable K_a is redundant. Removing both it and related Load/Store instructions. Variable K_d Variable K_d is redundant. Removing both it and related Load/Store instructions. Variable K_s Variable K_s is redundant. Removing both it and related Load/Store instructions. Variable shininess Variable shininess is redundant. Removing both it and related Load/Store instructions. Variable color Variable color is redundant. Removing both it and related Load/Store instructions. Variable param527 Variable param529 Variable param531 Variable param533 Variable param535 Variable param537 Removed 11 redundant local variables from function mainImage(vf4;vf2; Optimization done. Optimized Disassembly: Module Info: OpSource: : ESSL ver 310 1: OpExtInstImport: : GLSL.std.450 OpMemoryModel: : addressing: Logical, memory: GLSL450 Capabilities: OpCapability: : Shader Inputs: 547: OpVariable: FloatVector4*: gl_FragCoord: storage class: Input Decorators: BuiltIn(FragCoord) Outputs: 555: OpVariable: FloatVector4*: finalColor: storage class: Output Uniform Constants: 465: OpVariable: FloatVector3*: iResolution: storage class: UniformConstant 478: OpVariable: Float*: iTime: storage class: UniformConstant 558: OpVariable: FloatVector4*: iMouse: storage class: UniformConstant 559: OpVariable: FloatVector4*: iDate: storage class: UniformConstant 560: OpVariable: Float*: iFrame: storage class: UniformConstant 564: OpVariable: FloatVector3[4]*: iChannelResolution: storage class: UniformConstant Textures: 568: OpVariable: SampledImage(Image(Float))*: iChannel0: storage class: UniformConstant Decorators: RelaxedPrecision, DescriptorSet(0) 569: OpVariable: SampledImage(Image(Float))*: iChannel1: storage class: UniformConstant Decorators: RelaxedPrecision, DescriptorSet(0) 570: OpVariable: SampledImage(Image(Float))*: iChannel2: storage class: UniformConstant Decorators: RelaxedPrecision, DescriptorSet(0) 571: OpVariable: SampledImage(Image(Float))*: iChannel3: storage class: UniformConstant Decorators: RelaxedPrecision, DescriptorSet(0) Entry Points: 4: OpEntryPoint: : main, execution model: Fragment, Function: Void main(), OriginLowerLeft Constants: 95: OpConstant: Float const95 = 1 96: OpConstant: Float const96 = 0 97: OpConstantComposite: FloatVector3 const97 = {1, 0, 0} 135: OpConstant: Float const135 = 2 141: OpConstant: UInt const141 = 0 144: OpConstant: UInt const144 = 1 147: OpConstant: UInt const147 = 2 177: OpConstant: Float const177 = 1.8 178: OpConstantComposite: FloatVector3 const178 = {1.8, 1.8, 1.8} 183: OpConstant: Float const183 = 1.1 189: OpConstant: Float const189 = 1.2 210: OpConstant: Int const210 = 0 217: OpConstant: Int const217 = 255 Decorators: RelaxedPrecision 229: OpConstant: Float const229 = 0.0001 246: OpConstant: Int const246 = 1 373: OpConstantComposite: FloatVector3 const373 = {0, 0, 0} 399: OpConstant: Float const399 = 0.5 400: OpConstantComposite: FloatVector3 const400 = {0.5, 0.5, 0.5} 404: OpConstant: Float const404 = 6 405: OpConstant: Float const405 = 4 406: OpConstantComposite: FloatVector3 const406 = {6, 2, 4} 408: OpConstant: Float const408 = 0.4 409: OpConstantComposite: FloatVector3 const409 = {0.4, 0.4, 0.4} 463: OpConstant: Float const463 = 45 474: OpConstant: Float const474 = 8 475: OpConstant: Float const475 = 5 476: OpConstant: Float const476 = 0.2 483: OpConstant: Float const483 = 7 487: OpConstantComposite: FloatVector3 const487 = {0, 1, 0} 498: OpConstant: Float const498 = 100 507: OpConstant: Float const507 = 99.9999 511: OpConstantComposite: FloatVector4 const511 = {0, 0, 0, 0} 523: OpConstantComposite: FloatVector3 const523 = {1, 1, 1} 525: OpConstant: Float const525 = 10 561: OpConstant: UInt const561 = 4 Disassembled Code: 4: OpFunction: Void main() 548: OpVariable: FloatVector4*: param548: storage class: Function 549: OpVariable: FloatVector2*: param549: storage class: Function 5: lb5: 550: OpLoad: FloatVector4: tmp550 << gl_FragCoord 551: OpVectorShuffle: FloatVector2: tmp551 << tmp550, tmp550, 0, 1 OpStore: : tmp551 >> param549 552: OpFunctionCall: Void: mainImage(vf4;vf2;(param548, param549) 553: OpLoad: FloatVector4: tmp553 << param548 OpStore: : tmp553 >> finalColor OpReturn: 12: OpFunction: FloatMatrix3x3 rotateX(f1;(Float* theta) 13: lb13: 90: OpLoad: Float: tmp90 << theta 91: OpExtInst(Cos): Float: tmp91 << tmp90 93: OpLoad: Float: tmp93 << theta 94: OpExtInst(Sin): Float: tmp94 << tmp93 100: OpFNegate: Float: tmp100 << tmp94 101: OpCompositeConstruct: FloatVector3: tmp101 << const96, tmp91, tmp100 104: OpCompositeConstruct: FloatVector3: tmp104 << const96, tmp94, tmp91 105: OpCompositeExtract: Float: tmp105 << const97, 0 106: OpCompositeExtract: Float: tmp106 << const97, 1 107: OpCompositeExtract: Float: tmp107 << const97, 2 108: OpCompositeExtract: Float: tmp108 << tmp101, 0 109: OpCompositeExtract: Float: tmp109 << tmp101, 1 110: OpCompositeExtract: Float: tmp110 << tmp101, 2 111: OpCompositeExtract: Float: tmp111 << tmp104, 0 112: OpCompositeExtract: Float: tmp112 << tmp104, 1 113: OpCompositeExtract: Float: tmp113 << tmp104, 2 114: OpCompositeConstruct: FloatVector3: tmp114 << tmp105, tmp106, tmp107 115: OpCompositeConstruct: FloatVector3: tmp115 << tmp108, tmp109, tmp110 116: OpCompositeConstruct: FloatVector3: tmp116 << tmp111, tmp112, tmp113 117: OpCompositeConstruct: FloatMatrix3x3: tmp117 << tmp114, tmp115, tmp116 OpReturnValue: : << tmp117 17: OpFunction: Float intersectSDF(f1;f1;(Float* distA, Float* distB) 18: lb18: 120: OpLoad: Float: tmp120 << distA 121: OpLoad: Float: tmp121 << distB 122: OpExtInst(FMax): Float: tmp122 << tmp120, tmp121 OpReturnValue: : << tmp122 21: OpFunction: Float differenceSDF(f1;f1;(Float* distA, Float* distB) 22: lb22: 125: OpLoad: Float: tmp125 << distA 126: OpLoad: Float: tmp126 << distB 127: OpFNegate: Float: tmp127 << tmp126 128: OpExtInst(FMax): Float: tmp128 << tmp125, tmp127 OpReturnValue: : << tmp128 27: OpFunction: Float boxSDF(vf3;vf3;(FloatVector3* p, FloatVector3* size) 28: lb28: 132: OpLoad: FloatVector3: tmp132 << p 133: OpExtInst(FAbs): FloatVector3: tmp133 << tmp132 134: OpLoad: FloatVector3: tmp134 << size 136: OpCompositeConstruct: FloatVector3: tmp136 << const135, const135, const135 137: OpFDiv: FloatVector3: tmp137 << tmp134, tmp136 138: OpFSub: FloatVector3: tmp138 << tmp133, tmp137 142: OpAccessChain: Float*: d[0] 143: OpCompositeExtract: Float: tmp143 << tmp138, 0 145: OpAccessChain: Float*: d[1] 146: OpCompositeExtract: Float: tmp146 << tmp138, 1 148: OpAccessChain: Float*: d[2] 149: OpCompositeExtract: Float: tmp149 << tmp138, 2 150: OpExtInst(FMax): Float: tmp150 << tmp146, tmp149 151: OpExtInst(FMax): Float: tmp151 << tmp143, tmp150 152: OpExtInst(FMin): Float: tmp152 << tmp151, const96 155: OpCompositeConstruct: FloatVector3: tmp155 << const96, const96, const96 156: OpExtInst(FMax): FloatVector3: tmp156 << tmp138, tmp155 157: OpExtInst(Length): Float: tmp157 << tmp156 160: OpFAdd: Float: tmp160 << tmp152, tmp157 OpReturnValue: : << tmp160 32: OpFunction: Float sphereSDF(vf3;f1;(FloatVector3* p, Float* r) 33: lb33: 163: OpLoad: FloatVector3: tmp163 << p 164: OpExtInst(Length): Float: tmp164 << tmp163 165: OpLoad: Float: tmp165 << r 166: OpFSub: Float: tmp166 << tmp164, tmp165 OpReturnValue: : << tmp166 36: OpFunction: Float sceneSDF(vf3;(FloatVector3* samplePoint) 174: OpVariable: Float*: param174: storage class: Function 179: OpVariable: FloatVector3*: param179: storage class: Function 180: OpVariable: FloatVector3*: param180: storage class: Function 184: OpVariable: FloatVector3*: param184: storage class: Function 186: OpVariable: Float*: param186: storage class: Function 190: OpVariable: FloatVector3*: param190: storage class: Function 192: OpVariable: Float*: param192: storage class: Function 194: OpVariable: Float*: param194: storage class: Function 196: OpVariable: Float*: param196: storage class: Function 199: OpVariable: Float*: param199: storage class: Function 200: OpVariable: Float*: param200: storage class: Function 37: lb37: 170: OpLoad: FloatVector3: tmp170 << samplePoint 171: OpAccessChain: Float*: samplePoint[0] 172: OpLoad: Float: tmp172 << samplePoint[0] 173: OpFMul: Float: tmp173 << tmp172, const95 OpStore: : tmp173 >> param174 175: OpFunctionCall: FloatMatrix3x3: rotateX(f1;(param174) 176: OpVectorTimesMatrix: FloatVector3: tmp176 << tmp170, rotateX(f1; OpStore: : tmp176 >> param179 OpStore: : const178 >> param180 181: OpFunctionCall: Float: boxSDF(vf3;vf3;(param179, param180) 185: OpLoad: FloatVector3: tmp185 << samplePoint OpStore: : tmp185 >> param184 OpStore: : const183 >> param186 187: OpFunctionCall: Float: sphereSDF(vf3;f1;(param184, param186) 191: OpLoad: FloatVector3: tmp191 << samplePoint OpStore: : tmp191 >> param190 OpStore: : const189 >> param192 193: OpFunctionCall: Float: sphereSDF(vf3;f1;(param190, param192) OpStore: : boxSDF(vf3;vf3; >> param194 OpStore: : sphereSDF(vf3;f1; >> param196 198: OpFunctionCall: Float: differenceSDF(f1;f1;(param194, param196) OpStore: : differenceSDF(f1;f1; >> param199 OpStore: : sphereSDF(vf3;f1; >> param200 202: OpFunctionCall: Float: intersectSDF(f1;f1;(param199, param200) OpReturnValue: : << intersectSDF(f1;f1; 43: OpFunction: Float shortestDistanceToSurface(vf3;vf3;f1;f1;(FloatVector3* eye, FloatVector3* marchingDirection, Float* start, Float* end) 205: OpVariable: Float*: depth: storage class: Function 209: OpVariable: Int*: i: storage class: Function Decorators: RelaxedPrecision 226: OpVariable: FloatVector3*: param226: storage class: Function 44: lb44: 206: OpLoad: Float: tmp206 << start OpStore: : tmp206 >> depth OpStore: : const210 >> i OpBranch: to lb211 211: lb211: OpLoopMerge: (merge: lb213, continue: lb214) OpBranch: to lb215 215: lb215: 216: OpLoad: Int: tmp216 << i Decorators: RelaxedPrecision 219: OpSLessThan: Bool: tmp219 << tmp216, const217 OpBranchConditional: if(tmp219) then branch to lb212, else branch to lb213 212: lb212: 221: OpLoad: FloatVector3: tmp221 << eye 222: OpLoad: Float: tmp222 << depth 223: OpLoad: FloatVector3: tmp223 << marchingDirection 224: OpVectorTimesScalar: FloatVector3: tmp224 << tmp223, tmp222 225: OpFAdd: FloatVector3: tmp225 << tmp221, tmp224 OpStore: : tmp225 >> param226 227: OpFunctionCall: Float: sceneSDF(vf3;(param226) 230: OpFOrdLessThan: Bool: tmp230 << sceneSDF(vf3;, const229 OpSelectionMerge: (merge: lb232) OpBranchConditional: if(tmp230) then branch to lb231, else branch to lb232 231: lb231: 233: OpLoad: Float: tmp233 << depth OpReturnValue: : << tmp233 232: lb232: 236: OpLoad: Float: tmp236 << depth 237: OpFAdd: Float: tmp237 << tmp236, sceneSDF(vf3; OpStore: : tmp237 >> depth 238: OpLoad: Float: tmp238 << depth 239: OpLoad: Float: tmp239 << end 240: OpFOrdGreaterThanEqual: Bool: tmp240 << tmp238, tmp239 OpSelectionMerge: (merge: lb242) OpBranchConditional: if(tmp240) then branch to lb241, else branch to lb242 241: lb241: 243: OpLoad: Float: tmp243 << end OpReturnValue: : << tmp243 242: lb242: OpBranch: to lb214 214: lb214: 245: OpLoad: Int: tmp245 << i Decorators: RelaxedPrecision 247: OpIAdd: Int: tmp247 << tmp245, const246 Decorators: RelaxedPrecision OpStore: : tmp247 >> i OpBranch: to lb211 213: lb213: 248: OpLoad: Float: tmp248 << end OpReturnValue: : << tmp248 51: OpFunction: FloatVector3 rayDirection(f1;vf2;vf2;(Float* fieldOfView, FloatVector2* size, FloatVector2* fragCoord) 52: lb52: 252: OpLoad: FloatVector2: tmp252 << fragCoord 253: OpLoad: FloatVector2: tmp253 << size 254: OpCompositeConstruct: FloatVector2: tmp254 << const135, const135 255: OpFDiv: FloatVector2: tmp255 << tmp253, tmp254 256: OpFSub: FloatVector2: tmp256 << tmp252, tmp255 258: OpAccessChain: Float*: size[1] 259: OpLoad: Float: tmp259 << size[1] 260: OpLoad: Float: tmp260 << fieldOfView 261: OpExtInst(Radians): Float: tmp261 << tmp260 262: OpFDiv: Float: tmp262 << tmp261, const135 263: OpExtInst(Tan): Float: tmp263 << tmp262 264: OpFDiv: Float: tmp264 << tmp259, tmp263 267: OpFNegate: Float: tmp267 << tmp264 268: OpCompositeExtract: Float: tmp268 << tmp256, 0 269: OpCompositeExtract: Float: tmp269 << tmp256, 1 270: OpCompositeConstruct: FloatVector3: tmp270 << tmp268, tmp269, tmp267 271: OpExtInst(Normalize): FloatVector3: tmp271 << tmp270 OpReturnValue: : << tmp271 55: OpFunction: FloatVector3 estimateNormal(vf3;(FloatVector3* p) 282: OpVariable: FloatVector3*: param282: storage class: Function 292: OpVariable: FloatVector3*: param292: storage class: Function 303: OpVariable: FloatVector3*: param303: storage class: Function 313: OpVariable: FloatVector3*: param313: storage class: Function 324: OpVariable: FloatVector3*: param324: storage class: Function 334: OpVariable: FloatVector3*: param334: storage class: Function 56: lb56: 274: OpAccessChain: Float*: p[0] 275: OpLoad: Float: tmp275 << p[0] 276: OpFAdd: Float: tmp276 << tmp275, const229 277: OpAccessChain: Float*: p[1] 278: OpLoad: Float: tmp278 << p[1] 279: OpAccessChain: Float*: p[2] 280: OpLoad: Float: tmp280 << p[2] 281: OpCompositeConstruct: FloatVector3: tmp281 << tmp276, tmp278, tmp280 OpStore: : tmp281 >> param282 283: OpFunctionCall: Float: sceneSDF(vf3;(param282) 284: OpAccessChain: Float*: p[0] 285: OpLoad: Float: tmp285 << p[0] 286: OpFSub: Float: tmp286 << tmp285, const229 287: OpAccessChain: Float*: p[1] 288: OpLoad: Float: tmp288 << p[1] 289: OpAccessChain: Float*: p[2] 290: OpLoad: Float: tmp290 << p[2] 291: OpCompositeConstruct: FloatVector3: tmp291 << tmp286, tmp288, tmp290 OpStore: : tmp291 >> param292 293: OpFunctionCall: Float: sceneSDF(vf3;(param292) 294: OpFSub: Float: tmp294 << sceneSDF(vf3;, sceneSDF(vf3; 295: OpAccessChain: Float*: p[0] 296: OpLoad: Float: tmp296 << p[0] 297: OpAccessChain: Float*: p[1] 298: OpLoad: Float: tmp298 << p[1] 299: OpFAdd: Float: tmp299 << tmp298, const229 300: OpAccessChain: Float*: p[2] 301: OpLoad: Float: tmp301 << p[2] 302: OpCompositeConstruct: FloatVector3: tmp302 << tmp296, tmp299, tmp301 OpStore: : tmp302 >> param303 304: OpFunctionCall: Float: sceneSDF(vf3;(param303) 305: OpAccessChain: Float*: p[0] 306: OpLoad: Float: tmp306 << p[0] 307: OpAccessChain: Float*: p[1] 308: OpLoad: Float: tmp308 << p[1] 309: OpFSub: Float: tmp309 << tmp308, const229 310: OpAccessChain: Float*: p[2] 311: OpLoad: Float: tmp311 << p[2] 312: OpCompositeConstruct: FloatVector3: tmp312 << tmp306, tmp309, tmp311 OpStore: : tmp312 >> param313 314: OpFunctionCall: Float: sceneSDF(vf3;(param313) 315: OpFSub: Float: tmp315 << sceneSDF(vf3;, sceneSDF(vf3; 316: OpAccessChain: Float*: p[0] 317: OpLoad: Float: tmp317 << p[0] 318: OpAccessChain: Float*: p[1] 319: OpLoad: Float: tmp319 << p[1] 320: OpAccessChain: Float*: p[2] 321: OpLoad: Float: tmp321 << p[2] 322: OpFAdd: Float: tmp322 << tmp321, const229 323: OpCompositeConstruct: FloatVector3: tmp323 << tmp317, tmp319, tmp322 OpStore: : tmp323 >> param324 325: OpFunctionCall: Float: sceneSDF(vf3;(param324) 326: OpAccessChain: Float*: p[0] 327: OpLoad: Float: tmp327 << p[0] 328: OpAccessChain: Float*: p[1] 329: OpLoad: Float: tmp329 << p[1] 330: OpAccessChain: Float*: p[2] 331: OpLoad: Float: tmp331 << p[2] 332: OpFSub: Float: tmp332 << tmp331, const229 333: OpCompositeConstruct: FloatVector3: tmp333 << tmp327, tmp329, tmp332 OpStore: : tmp333 >> param334 335: OpFunctionCall: Float: sceneSDF(vf3;(param334) 336: OpFSub: Float: tmp336 << sceneSDF(vf3;, sceneSDF(vf3; 337: OpCompositeConstruct: FloatVector3: tmp337 << tmp294, tmp315, tmp336 338: OpExtInst(Normalize): FloatVector3: tmp338 << tmp337 OpReturnValue: : << tmp338 65: OpFunction: FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;(FloatVector3* k_d, FloatVector3* k_s, Float* alpha, FloatVector3* p, FloatVector3* eye, FloatVector3* lightPos, FloatVector3* lightIntensity) 342: OpVariable: FloatVector3*: param342: storage class: Function 66: lb66: 343: OpLoad: FloatVector3: tmp343 << p OpStore: : tmp343 >> param342 344: OpFunctionCall: FloatVector3: estimateNormal(vf3;(param342) 346: OpLoad: FloatVector3: tmp346 << lightPos 347: OpLoad: FloatVector3: tmp347 << p 348: OpFSub: FloatVector3: tmp348 << tmp346, tmp347 349: OpExtInst(Normalize): FloatVector3: tmp349 << tmp348 351: OpLoad: FloatVector3: tmp351 << eye 352: OpLoad: FloatVector3: tmp352 << p 353: OpFSub: FloatVector3: tmp353 << tmp351, tmp352 354: OpExtInst(Normalize): FloatVector3: tmp354 << tmp353 357: OpFNegate: FloatVector3: tmp357 << tmp349 359: OpExtInst(Reflect): FloatVector3: tmp359 << tmp357, estimateNormal(vf3; 360: OpExtInst(Normalize): FloatVector3: tmp360 << tmp359 364: OpDot: Float: tmp364 << tmp349, estimateNormal(vf3; 368: OpDot: Float: tmp368 << tmp360, tmp354 370: OpFOrdLessThan: Bool: tmp370 << tmp364, const96 OpSelectionMerge: (merge: lb372) OpBranchConditional: if(tmp370) then branch to lb371, else branch to lb372 371: lb371: OpReturnValue: : << const373 372: lb372: 376: OpFOrdLessThan: Bool: tmp376 << tmp368, const96 OpSelectionMerge: (merge: lb378) OpBranchConditional: if(tmp376) then branch to lb377, else branch to lb378 377: lb377: 379: OpLoad: FloatVector3: tmp379 << lightIntensity 380: OpLoad: FloatVector3: tmp380 << k_d 382: OpVectorTimesScalar: FloatVector3: tmp382 << tmp380, tmp364 383: OpFMul: FloatVector3: tmp383 << tmp379, tmp382 OpReturnValue: : << tmp383 378: lb378: 385: OpLoad: FloatVector3: tmp385 << lightIntensity 386: OpLoad: FloatVector3: tmp386 << k_d 388: OpVectorTimesScalar: FloatVector3: tmp388 << tmp386, tmp364 389: OpLoad: FloatVector3: tmp389 << k_s 391: OpLoad: Float: tmp391 << alpha 392: OpExtInst(Pow): Float: tmp392 << tmp368, tmp391 393: OpVectorTimesScalar: FloatVector3: tmp393 << tmp389, tmp392 394: OpFAdd: FloatVector3: tmp394 << tmp388, tmp393 395: OpFMul: FloatVector3: tmp395 << tmp385, tmp394 OpReturnValue: : << tmp395 74: OpFunction: FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;(FloatVector3* k_a, FloatVector3* k_d, FloatVector3* k_s, Float* alpha, FloatVector3* p, FloatVector3* eye) 398: OpVariable: FloatVector3*: color: storage class: Function 410: OpVariable: FloatVector3*: param410: storage class: Function 412: OpVariable: FloatVector3*: param412: storage class: Function 414: OpVariable: Float*: param414: storage class: Function 416: OpVariable: FloatVector3*: param416: storage class: Function 418: OpVariable: FloatVector3*: param418: storage class: Function 420: OpVariable: FloatVector3*: param420: storage class: Function 422: OpVariable: FloatVector3*: param422: storage class: Function 75: lb75: 401: OpLoad: FloatVector3: tmp401 << k_a 402: OpFMul: FloatVector3: tmp402 << const400, tmp401 OpStore: : tmp402 >> color 411: OpLoad: FloatVector3: tmp411 << k_d OpStore: : tmp411 >> param410 413: OpLoad: FloatVector3: tmp413 << k_s OpStore: : tmp413 >> param412 415: OpLoad: Float: tmp415 << alpha OpStore: : tmp415 >> param414 417: OpLoad: FloatVector3: tmp417 << p OpStore: : tmp417 >> param416 419: OpLoad: FloatVector3: tmp419 << eye OpStore: : tmp419 >> param418 OpStore: : const406 >> param420 OpStore: : const409 >> param422 424: OpFunctionCall: FloatVector3: phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;(param410, param412, param414, param416, param418, param420, param422) 425: OpLoad: FloatVector3: tmp425 << color 426: OpFAdd: FloatVector3: tmp426 << tmp425, phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3; OpStore: : tmp426 >> color 427: OpLoad: FloatVector3: tmp427 << color OpReturnValue: : << tmp427 80: OpFunction: FloatMatrix3x3 viewMatrix(vf3;vf3;vf3;(FloatVector3* eye, FloatVector3* center, FloatVector3* up) 81: lb81: 431: OpLoad: FloatVector3: tmp431 << center 432: OpLoad: FloatVector3: tmp432 << eye 433: OpFSub: FloatVector3: tmp433 << tmp431, tmp432 434: OpExtInst(Normalize): FloatVector3: tmp434 << tmp433 437: OpLoad: FloatVector3: tmp437 << up 438: OpExtInst(Cross): FloatVector3: tmp438 << tmp434, tmp437 442: OpExtInst(Cross): FloatVector3: tmp442 << tmp438, tmp434 446: OpFNegate: FloatVector3: tmp446 << tmp434 447: OpCompositeExtract: Float: tmp447 << tmp438, 0 448: OpCompositeExtract: Float: tmp448 << tmp438, 1 449: OpCompositeExtract: Float: tmp449 << tmp438, 2 450: OpCompositeExtract: Float: tmp450 << tmp442, 0 451: OpCompositeExtract: Float: tmp451 << tmp442, 1 452: OpCompositeExtract: Float: tmp452 << tmp442, 2 453: OpCompositeExtract: Float: tmp453 << tmp446, 0 454: OpCompositeExtract: Float: tmp454 << tmp446, 1 455: OpCompositeExtract: Float: tmp455 << tmp446, 2 456: OpCompositeConstruct: FloatVector3: tmp456 << tmp447, tmp448, tmp449 457: OpCompositeConstruct: FloatVector3: tmp457 << tmp450, tmp451, tmp452 458: OpCompositeConstruct: FloatVector3: tmp458 << tmp453, tmp454, tmp455 459: OpCompositeConstruct: FloatMatrix3x3: tmp459 << tmp456, tmp457, tmp458 OpReturnValue: : << tmp459 87: OpFunction: Void mainImage(vf4;vf2;(FloatVector4* fragColor, FloatVector2* fragCoord) 466: OpVariable: Float*: param466: storage class: Function 467: OpVariable: FloatVector2*: param467: storage class: Function 470: OpVariable: FloatVector2*: param470: storage class: Function 488: OpVariable: FloatVector3*: param488: storage class: Function 490: OpVariable: FloatVector3*: param490: storage class: Function 491: OpVariable: FloatVector3*: param491: storage class: Function 499: OpVariable: FloatVector3*: param499: storage class: Function 501: OpVariable: FloatVector3*: param501: storage class: Function 503: OpVariable: Float*: param503: storage class: Function 504: OpVariable: Float*: param504: storage class: Function 527: OpVariable: FloatVector3*: param527: storage class: Function 529: OpVariable: FloatVector3*: param529: storage class: Function 531: OpVariable: FloatVector3*: param531: storage class: Function 533: OpVariable: Float*: param533: storage class: Function 535: OpVariable: FloatVector3*: param535: storage class: Function 537: OpVariable: FloatVector3*: param537: storage class: Function 88: lb88: OpStore: : const463 >> param466 468: OpLoad: FloatVector3: tmp468 << iResolution 469: OpVectorShuffle: FloatVector2: tmp469 << tmp468, tmp468, 0, 1 OpStore: : tmp469 >> param467 471: OpLoad: FloatVector2: tmp471 << fragCoord OpStore: : tmp471 >> param470 472: OpFunctionCall: FloatVector3: rayDirection(f1;vf2;vf2;(param466, param467, param470) 479: OpLoad: Float: tmp479 << iTime 480: OpFMul: Float: tmp480 << const476, tmp479 481: OpExtInst(Sin): Float: tmp481 << tmp480 482: OpFMul: Float: tmp482 << const475, tmp481 484: OpCompositeConstruct: FloatVector3: tmp484 << const474, tmp482, const483 OpStore: : tmp484 >> param488 OpStore: : const373 >> param490 OpStore: : const487 >> param491 492: OpFunctionCall: FloatMatrix3x3: viewMatrix(vf3;vf3;vf3;(param488, param490, param491) 496: OpMatrixTimesVector: FloatVector3: tmp496 << viewMatrix(vf3;vf3;vf3;, rayDirection(f1;vf2;vf2; OpStore: : tmp484 >> param499 OpStore: : tmp496 >> param501 OpStore: : const96 >> param503 OpStore: : const498 >> param504 505: OpFunctionCall: Float: shortestDistanceToSurface(vf3;vf3;f1;f1;(param499, param501, param503, param504) 508: OpFOrdGreaterThan: Bool: tmp508 << shortestDistanceToSurface(vf3;vf3;f1;f1;, const507 OpSelectionMerge: (merge: lb510) OpBranchConditional: if(tmp508) then branch to lb509, else branch to lb510 509: lb509: OpStore: : const511 >> fragColor OpReturn: 510: lb510: 517: OpVectorTimesScalar: FloatVector3: tmp517 << tmp496, shortestDistanceToSurface(vf3;vf3;f1;f1; 518: OpFAdd: FloatVector3: tmp518 << tmp484, tmp517 OpStore: : const400 >> param527 OpStore: : const400 >> param529 OpStore: : const523 >> param531 OpStore: : const525 >> param533 OpStore: : tmp518 >> param535 OpStore: : tmp484 >> param537 539: OpFunctionCall: FloatVector3: phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;(param527, param529, param531, param533, param535, param537) 541: OpCompositeExtract: Float: tmp541 << phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;, 0 542: OpCompositeExtract: Float: tmp542 << phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;, 1 543: OpCompositeExtract: Float: tmp543 << phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;, 2 544: OpCompositeConstruct: FloatVector4: tmp544 << tmp541, tmp542, tmp543, const95 OpStore: : tmp544 >> fragColor OpReturn: Generating the compiled code... Intermediate disassembly (pre optimization): Program Type: Fragment Special Input Variables: offset: unset, size: 16, FloatVector4 gl_FragCoord BuiltIn(FragCoord) Textures: offset: 0, size: 4, Float iChannel0 offset: 1, size: 4, Float iChannel1 offset: 2, size: 4, Float iChannel2 offset: 3, size: 4, Float iChannel3 Output Variables: offset: 0, size: 16, FloatVector4 finalColor Uniform Constants: offset: 0, size: 12, FloatVector3 iResolution offset: 12, size: 4, Float iTime offset: 16, size: 16, FloatVector4 iMouse offset: 32, size: 16, FloatVector4 iDate offset: 48, size: 4, Float iFrame offset: 52, size: 48, FloatVector3 iChannelResolution[4] Constants: Float const95: 1 Float const96: 0 FloatVector3 const97: {1, 0, 0} Float const135: 2 UInt32 const141: 0 UInt32 const144: 1 UInt32 const147: 2 Float const177: 1.8 FloatVector3 const178: {1.8, 1.8, 1.8} Float const183: 1.1 Float const189: 1.2 Int32 const210: 0 Int32 const217: 255 Float const229: 0.0001 Int32 const246: 1 FloatVector3 const373: {0, 0, 0} Float const399: 0.5 FloatVector3 const400: {0.5, 0.5, 0.5} Float const404: 6 Float const405: 4 FloatVector3 const406: {6, 2, 4} Float const408: 0.4 FloatVector3 const409: {0.4, 0.4, 0.4} Float const463: 45 Float const474: 8 Float const475: 5 Float const476: 0.2 Float const483: 7 FloatVector3 const487: {0, 1, 0} Float const498: 100 Float const507: 99.9999 FloatVector4 const511: {0, 0, 0, 0} FloatVector3 const523: {1, 1, 1} Float const525: 10 UInt32 const561: 4 Function Local Variables: offset: unset, size: 16, FloatVector4 main.param548 offset: unset, size: 8, FloatVector2 main.param549 offset: unset, size: 16, FloatVector4 main.fragColor offset: unset, size: 8, FloatVector2 main.fragCoord offset: unset, size: 4, Float main.theta offset: unset, size: 4, Float rotateX(f1;.distA offset: unset, size: 4, Float rotateX(f1;.distB offset: unset, size: 4, Float intersectSDF(f1;f1;.distA offset: unset, size: 4, Float intersectSDF(f1;f1;.distB offset: unset, size: 12, FloatVector3 differenceSDF(f1;f1;.p offset: unset, size: 12, FloatVector3 differenceSDF(f1;f1;.size offset: unset, size: 12, FloatVector3 boxSDF(vf3;vf3;.p offset: unset, size: 4, Float boxSDF(vf3;vf3;.r offset: unset, size: 12, FloatVector3 sphereSDF(vf3;f1;.samplePoint offset: unset, size: 4, Float sceneSDF(vf3;.param174 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.param179 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.param180 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.param184 offset: unset, size: 4, Float sceneSDF(vf3;.param186 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.param190 offset: unset, size: 4, Float sceneSDF(vf3;.param192 offset: unset, size: 4, Float sceneSDF(vf3;.param194 offset: unset, size: 4, Float sceneSDF(vf3;.param196 offset: unset, size: 4, Float sceneSDF(vf3;.param199 offset: unset, size: 4, Float sceneSDF(vf3;.param200 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.eye offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.marchingDirection offset: unset, size: 4, Float sceneSDF(vf3;.start offset: unset, size: 4, Float sceneSDF(vf3;.end offset: unset, size: 4, Float shortestDistanceToSurface(vf3;vf3;f1;f1;.depth offset: unset, size: 4, Int32 shortestDistanceToSurface(vf3;vf3;f1;f1;.i offset: unset, size: 12, FloatVector3 shortestDistanceToSurface(vf3;vf3;f1;f1;.param226 offset: unset, size: 4, Float shortestDistanceToSurface(vf3;vf3;f1;f1;.fieldOfView offset: unset, size: 8, FloatVector2 shortestDistanceToSurface(vf3;vf3;f1;f1;.size offset: unset, size: 8, FloatVector2 shortestDistanceToSurface(vf3;vf3;f1;f1;.fragCoord offset: unset, size: 12, FloatVector3 rayDirection(f1;vf2;vf2;.p offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param282 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param292 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param303 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param313 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param324 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param334 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.k_d offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.k_s offset: unset, size: 4, Float estimateNormal(vf3;.alpha offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.p offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.eye offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.lightPos offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.lightIntensity offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.param342 offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_a offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_d offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_s offset: unset, size: 4, Float phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.alpha offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.p offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.eye offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.color offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param410 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param412 offset: unset, size: 4, Float phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param414 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param416 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param418 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param420 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param422 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.eye offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.center offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.up offset: unset, size: 4, Float mainImage(vf4;vf2;.param466 offset: unset, size: 8, FloatVector2 mainImage(vf4;vf2;.param467 offset: unset, size: 8, FloatVector2 mainImage(vf4;vf2;.param470 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param488 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param490 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param491 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param499 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param501 offset: unset, size: 4, Float mainImage(vf4;vf2;.param503 offset: unset, size: 4, Float mainImage(vf4;vf2;.param504 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param527 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param529 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param531 offset: unset, size: 4, Float mainImage(vf4;vf2;.param533 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param535 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param537 Instructions: V_SUB_F32 vDst(VGPR14) src0(SGPR2) src1(VGPR14) // VOP2 # Void main() Function: Void main() # lb5 Label: lb5 # 550: OpLoad: FloatVector4: tmp550 << gl_FragCoord V_MOV_B32 vDst(VGPR24) src0(VGPR13) V_MOV_B32 vDst(VGPR25) src0(VGPR14) V_MOV_B32 vDst(VGPR26) src0(VGPR15) V_MOV_B32 vDst(VGPR27) src0(VGPR16) # 551: OpVectorShuffle: FloatVector2: tmp551 << tmp550, tmp550, 0, 1 V_MOV_B32 vDst(VGPR28) src0(VGPR24) V_MOV_B32 vDst(VGPR29) src0(VGPR25) # OpStore: : tmp551 >> param549 V_MOV_B32 vDst(VGPR22) src0(VGPR28) V_MOV_B32 vDst(VGPR23) src0(VGPR29) # 552: OpFunctionCall: Void: mainImage(vf4;vf2;(param548, param549) S_ADD_U32 sDst(SGPR12) src0(LITERAL_CONST) src1(0) const: 0x12 # VGPR[18:21] S_ADD_U32 sDst(SGPR13) src0(LITERAL_CONST) src1(0) const: 0x16 # VGPR[22:23] S_MOV_B64 sDst(SGPR14) src0(EXEC) # Indirect branch to mainImage(vf4;vf2;: ??? S_GETPC_B64 sDst(SGPR10) src0(SGPR10) S_ADD_U32 sDst(SGPR10) src0(SGPR10) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR11) src0(SGPR11) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR10) src0(SGPR10) S_MOV_B64 sDst(EXEC) src0(SGPR14) # .lbl0 # 553: OpLoad: FloatVector4: tmp553 << param548 # OpStore: : tmp553 >> finalColor V_MOV_B32 vDst(VGPR30) src0(VGPR18) V_MOV_B32 vDst(VGPR31) src0(VGPR19) V_MOV_B32 vDst(VGPR32) src0(VGPR20) V_MOV_B32 vDst(VGPR33) src0(VGPR21) # OpReturn: S_ENDPGM 0 # FloatMatrix3x3 rotateX(f1;(Float* theta) Function: FloatMatrix3x3 rotateX(f1;() S_MOV_B64 sDst(SGPR20) src0(EXEC) # lb13 Label: lb13 # 90: OpLoad: Float: tmp90 << theta S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR19) const: 0x0 V_MOVRELS_B32 vDst(VGPR34) src0(VGPR0) # 91: OpExtInst(Cos): Float: tmp91 << tmp90 V_MUL_F32 vDst(VGPR35) src0(LITERAL_CONST) src1(VGPR34) // VOP2 const: 0x3e22f983 V_FRACT_F32 vDst(VGPR35) src0(VGPR35) V_COS_F32 vDst(VGPR35) src0(VGPR35) # 93: OpLoad: Float: tmp93 << theta S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR19) const: 0x0 V_MOVRELS_B32 vDst(VGPR36) src0(VGPR0) # 94: OpExtInst(Sin): Float: tmp94 << tmp93 V_MUL_F32 vDst(VGPR37) src0(LITERAL_CONST) src1(VGPR36) // VOP2 const: 0x3e22f983 V_FRACT_F32 vDst(VGPR37) src0(VGPR37) V_SIN_F32 vDst(VGPR37) src0(VGPR37) # 100: OpFNegate: Float: tmp100 << tmp94 V_MUL_F32 vDst(VGPR38) src0(M1_0_F) src1(VGPR37) // VOP2 # 101: OpCompositeConstruct: FloatVector3: tmp101 << const96, tmp91, tmp100 V_MOV_B32 vDst(VGPR42) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR39) src0(VGPR42) V_MOV_B32 vDst(VGPR40) src0(VGPR35) V_MOV_B32 vDst(VGPR41) src0(VGPR38) # 104: OpCompositeConstruct: FloatVector3: tmp104 << const96, tmp94, tmp91 V_MOV_B32 vDst(VGPR46) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR43) src0(VGPR46) V_MOV_B32 vDst(VGPR44) src0(VGPR37) V_MOV_B32 vDst(VGPR45) src0(VGPR35) # 105: OpCompositeExtract: Float: tmp105 << const97, 0 V_MOV_B32 vDst(VGPR47) src0(1_0_F) # 106: OpCompositeExtract: Float: tmp106 << const97, 1 V_MOV_B32 vDst(VGPR49) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR48) src0(VGPR50) # 107: OpCompositeExtract: Float: tmp107 << const97, 2 V_MOV_B32 vDst(VGPR51) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR50) src0(VGPR53) # 108: OpCompositeExtract: Float: tmp108 << tmp101, 0 V_MOV_B32 vDst(VGPR52) src0(VGPR39) # 109: OpCompositeExtract: Float: tmp109 << tmp101, 1 V_MOV_B32 vDst(VGPR53) src0(VGPR40) # 110: OpCompositeExtract: Float: tmp110 << tmp101, 2 V_MOV_B32 vDst(VGPR54) src0(VGPR41) # 111: OpCompositeExtract: Float: tmp111 << tmp104, 0 V_MOV_B32 vDst(VGPR55) src0(VGPR43) # 112: OpCompositeExtract: Float: tmp112 << tmp104, 1 V_MOV_B32 vDst(VGPR56) src0(VGPR44) # 113: OpCompositeExtract: Float: tmp113 << tmp104, 2 V_MOV_B32 vDst(VGPR57) src0(VGPR45) # 114: OpCompositeConstruct: FloatVector3: tmp114 << tmp105, tmp106, tmp107 V_MOV_B32 vDst(VGPR58) src0(VGPR47) V_MOV_B32 vDst(VGPR59) src0(VGPR48) V_MOV_B32 vDst(VGPR60) src0(VGPR50) # 115: OpCompositeConstruct: FloatVector3: tmp115 << tmp108, tmp109, tmp110 V_MOV_B32 vDst(VGPR61) src0(VGPR52) V_MOV_B32 vDst(VGPR62) src0(VGPR53) V_MOV_B32 vDst(VGPR63) src0(VGPR54) # 116: OpCompositeConstruct: FloatVector3: tmp116 << tmp111, tmp112, tmp113 V_MOV_B32 vDst(VGPR64) src0(VGPR55) V_MOV_B32 vDst(VGPR65) src0(VGPR56) V_MOV_B32 vDst(VGPR66) src0(VGPR57) # 117: OpCompositeConstruct: FloatMatrix3x3: tmp117 << tmp114, tmp115, tmp116 V_MOV_B32 vDst(VGPR67) src0(VGPR58) V_MOV_B32 vDst(VGPR68) src0(VGPR59) V_MOV_B32 vDst(VGPR69) src0(VGPR60) V_MOV_B32 vDst(VGPR70) src0(VGPR61) V_MOV_B32 vDst(VGPR71) src0(VGPR62) V_MOV_B32 vDst(VGPR72) src0(VGPR63) V_MOV_B32 vDst(VGPR73) src0(VGPR64) V_MOV_B32 vDst(VGPR74) src0(VGPR65) V_MOV_B32 vDst(VGPR75) src0(VGPR66) # OpReturnValue: : << tmp117 S_MOV_B32 sDst(M0) src0(SGPR18) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR67) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR68) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR69) V_MOVRELD_B32 vDst(VGPR3) src0(VGPR70) V_MOVRELD_B32 vDst(VGPR4) src0(VGPR71) V_MOVRELD_B32 vDst(VGPR5) src0(VGPR72) V_MOVRELD_B32 vDst(VGPR6) src0(VGPR73) V_MOVRELD_B32 vDst(VGPR7) src0(VGPR74) V_MOVRELD_B32 vDst(VGPR8) src0(VGPR75) S_SETPC_B64 sDst(SGPR16) src0(SGPR16) # Float intersectSDF(f1;f1;(Float* distA, Float* distB) Function: Float intersectSDF(f1;f1;(, Float rotateX(f1;.distB) S_MOV_B64 sDst(SGPR28) src0(EXEC) # lb18 Label: lb18 # 120: OpLoad: Float: tmp120 << distA S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR25) const: 0x0 V_MOVRELS_B32 vDst(VGPR76) src0(VGPR0) # 121: OpLoad: Float: tmp121 << distB S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR26) const: 0x0 V_MOVRELS_B32 vDst(VGPR77) src0(VGPR0) # 122: OpExtInst(FMax): Float: tmp122 << tmp120, tmp121 V_MAX_F32 vDst(VGPR78) src0(VGPR76) src1(VGPR77) // VOP2 # OpReturnValue: : << tmp122 S_MOV_B32 sDst(M0) src0(SGPR24) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR78) S_SETPC_B64 sDst(SGPR22) src0(SGPR22) # Float differenceSDF(f1;f1;(Float* distA, Float* distB) Function: Float differenceSDF(f1;f1;(, Float intersectSDF(f1;f1;.distB) S_MOV_B64 sDst(SGPR36) src0(EXEC) # lb22 Label: lb22 # 125: OpLoad: Float: tmp125 << distA S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR33) const: 0x0 V_MOVRELS_B32 vDst(VGPR79) src0(VGPR0) # 126: OpLoad: Float: tmp126 << distB S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR34) const: 0x0 V_MOVRELS_B32 vDst(VGPR80) src0(VGPR0) # 127: OpFNegate: Float: tmp127 << tmp126 V_MUL_F32 vDst(VGPR81) src0(M1_0_F) src1(VGPR80) // VOP2 # 128: OpExtInst(FMax): Float: tmp128 << tmp125, tmp127 V_MAX_F32 vDst(VGPR82) src0(VGPR79) src1(VGPR81) // VOP2 # OpReturnValue: : << tmp128 S_MOV_B32 sDst(M0) src0(SGPR32) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR82) S_SETPC_B64 sDst(SGPR30) src0(SGPR30) # Float boxSDF(vf3;vf3;(FloatVector3* p, FloatVector3* size) Function: Float boxSDF(vf3;vf3;(, FloatVector3 differenceSDF(f1;f1;.size) S_MOV_B64 sDst(SGPR44) src0(EXEC) # lb28 Label: lb28 # 132: OpLoad: FloatVector3: tmp132 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR41) const: 0x0 V_MOVRELS_B32 vDst(VGPR83) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR84) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR85) src0(VGPR2) # 133: OpExtInst(FAbs): FloatVector3: tmp133 << tmp132 V_ADD_F32 vDst(VGPR86) src0(VGPR83) src1(0) src2(N/A) abs(1) clamp(0) omod(0) neg(0) // VOP3a V_ADD_F32 vDst(VGPR87) src0(VGPR84) src1(0) src2(N/A) abs(1) clamp(0) omod(0) neg(0) // VOP3a V_ADD_F32 vDst(VGPR88) src0(VGPR85) src1(0) src2(N/A) abs(1) clamp(0) omod(0) neg(0) // VOP3a # 134: OpLoad: FloatVector3: tmp134 << size S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR42) const: 0x0 V_MOVRELS_B32 vDst(VGPR89) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR90) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR91) src0(VGPR2) # 136: OpCompositeConstruct: FloatVector3: tmp136 << const135, const135, const135 V_MOV_B32 vDst(VGPR92) src0(2_0_F) V_MOV_B32 vDst(VGPR93) src0(2_0_F) V_MOV_B32 vDst(VGPR94) src0(2_0_F) # 137: OpFDiv: FloatVector3: tmp137 << tmp134, tmp136 V_RCP_F32 vDst(VGPR95) src0(VGPR92) V_RCP_F32 vDst(VGPR96) src0(VGPR93) V_RCP_F32 vDst(VGPR97) src0(VGPR94) V_MUL_F32 vDst(VGPR95) src0(VGPR89) src1(VGPR95) // VOP2 V_MUL_F32 vDst(VGPR96) src0(VGPR90) src1(VGPR96) // VOP2 V_MUL_F32 vDst(VGPR97) src0(VGPR91) src1(VGPR97) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR95) src0(VGPR95) src1(VGPR92) src2(VGPR89) abs(0) clamp(0) omod(0) neg(0) // VOP3a V_DIV_FIXUP_F32 vDst(VGPR96) src0(VGPR96) src1(VGPR93) src2(VGPR90) abs(0) clamp(0) omod(0) neg(0) // VOP3a V_DIV_FIXUP_F32 vDst(VGPR97) src0(VGPR97) src1(VGPR94) src2(VGPR91) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 138: OpFSub: FloatVector3: tmp138 << tmp133, tmp137 V_SUB_F32 vDst(VGPR98) src0(VGPR86) src1(VGPR95) // VOP2 V_SUB_F32 vDst(VGPR99) src0(VGPR87) src1(VGPR96) // VOP2 V_SUB_F32 vDst(VGPR100) src0(VGPR88) src1(VGPR97) // VOP2 # 142: OpAccessChain: Float*: d[0] # 143: OpCompositeExtract: Float: tmp143 << tmp138, 0 V_MOV_B32 vDst(VGPR101) src0(VGPR98) # 145: OpAccessChain: Float*: d[1] # 146: OpCompositeExtract: Float: tmp146 << tmp138, 1 V_MOV_B32 vDst(VGPR102) src0(VGPR99) # 148: OpAccessChain: Float*: d[2] # 149: OpCompositeExtract: Float: tmp149 << tmp138, 2 V_MOV_B32 vDst(VGPR103) src0(VGPR100) # 150: OpExtInst(FMax): Float: tmp150 << tmp146, tmp149 V_MAX_F32 vDst(VGPR104) src0(VGPR102) src1(VGPR103) // VOP2 # 151: OpExtInst(FMax): Float: tmp151 << tmp143, tmp150 V_MAX_F32 vDst(VGPR105) src0(VGPR101) src1(VGPR104) // VOP2 # 152: OpExtInst(FMin): Float: tmp152 << tmp151, const96 V_MOV_B32 vDst(VGPR106) src0(LITERAL_CONST) const: 0x00000000 V_MIN_F32 vDst(VGPR107) src0(VGPR105) src1(VGPR106) // VOP2 # 155: OpCompositeConstruct: FloatVector3: tmp155 << const96, const96, const96 V_MOV_B32 vDst(VGPR111) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR108) src0(VGPR111) V_MOV_B32 vDst(VGPR112) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR109) src0(VGPR112) V_MOV_B32 vDst(VGPR113) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR110) src0(VGPR113) # 156: OpExtInst(FMax): FloatVector3: tmp156 << tmp138, tmp155 V_MAX_F32 vDst(VGPR114) src0(VGPR98) src1(VGPR108) // VOP2 V_MAX_F32 vDst(VGPR115) src0(VGPR99) src1(VGPR109) // VOP2 V_MAX_F32 vDst(VGPR116) src0(VGPR100) src1(VGPR110) // VOP2 # 157: OpExtInst(Length): Float: tmp157 << tmp156 V_MUL_F32 vDst(VGPR117) src0(VGPR114) src1(VGPR114) // VOP2 V_MAC_F32 vDst(VGPR117) src0(VGPR115) src1(VGPR115) // VOP2 V_MAC_F32 vDst(VGPR117) src0(VGPR116) src1(VGPR116) // VOP2 V_SQRT_F32 vDst(VGPR117) src0(VGPR117) # 160: OpFAdd: Float: tmp160 << tmp152, tmp157 V_ADD_F32 vDst(VGPR118) src0(VGPR107) src1(VGPR117) // VOP2 # OpReturnValue: : << tmp160 S_MOV_B32 sDst(M0) src0(SGPR40) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR118) S_SETPC_B64 sDst(SGPR38) src0(SGPR38) # Float sphereSDF(vf3;f1;(FloatVector3* p, Float* r) Function: Float sphereSDF(vf3;f1;(, Float boxSDF(vf3;vf3;.r) S_MOV_B64 sDst(SGPR52) src0(EXEC) # lb33 Label: lb33 # 163: OpLoad: FloatVector3: tmp163 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR49) const: 0x0 V_MOVRELS_B32 vDst(VGPR119) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR120) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR121) src0(VGPR2) # 164: OpExtInst(Length): Float: tmp164 << tmp163 V_MUL_F32 vDst(VGPR122) src0(VGPR119) src1(VGPR119) // VOP2 V_MAC_F32 vDst(VGPR122) src0(VGPR120) src1(VGPR120) // VOP2 V_MAC_F32 vDst(VGPR122) src0(VGPR121) src1(VGPR121) // VOP2 V_SQRT_F32 vDst(VGPR122) src0(VGPR122) # 165: OpLoad: Float: tmp165 << r S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR50) const: 0x0 V_MOVRELS_B32 vDst(VGPR123) src0(VGPR0) # 166: OpFSub: Float: tmp166 << tmp164, tmp165 V_SUB_F32 vDst(VGPR124) src0(VGPR122) src1(VGPR123) // VOP2 # OpReturnValue: : << tmp166 S_MOV_B32 sDst(M0) src0(SGPR48) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR124) S_SETPC_B64 sDst(SGPR46) src0(SGPR46) # Float sceneSDF(vf3;(FloatVector3* samplePoint) Function: Float sceneSDF(vf3;() S_MOV_B64 sDst(SGPR58) src0(EXEC) # lb37 Label: lb37 # 170: OpLoad: FloatVector3: tmp170 << samplePoint S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR57) const: 0x0 V_MOVRELS_B32 vDst(VGPR144) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR145) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR146) src0(VGPR2) # 171: OpAccessChain: Float*: samplePoint[0] # 172: OpLoad: Float: tmp172 << samplePoint[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR57) const: 0x0 V_MOVRELS_B32 vDst(VGPR147) src0(VGPR0) # 173: OpFMul: Float: tmp173 << tmp172, const95 V_MOV_B32 vDst(VGPR148) src0(1_0_F) V_MUL_F32 vDst(VGPR149) src0(VGPR147) src1(VGPR148) // VOP2 # OpStore: : tmp173 >> param174 V_MOV_B32 vDst(VGPR125) src0(VGPR149) # 175: OpFunctionCall: FloatMatrix3x3: rotateX(f1;(param174) S_ADD_U32 sDst(SGPR19) src0(LITERAL_CONST) src1(0) const: 0x7d # VGPR125 S_MOV_B64 sDst(SGPR60) src0(EXEC) S_MOV_B32 sDst(SGPR18) src0(LITERAL_CONST) const: 0x96 # VGPR[150:158] # Indirect branch to rotateX(f1;: ??? S_GETPC_B64 sDst(SGPR16) src0(SGPR16) S_ADD_U32 sDst(SGPR16) src0(SGPR16) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR17) src0(SGPR17) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR16) src0(SGPR16) S_MOV_B64 sDst(EXEC) src0(SGPR60) # .lbl1 # 176: OpVectorTimesMatrix: FloatVector3: tmp176 << tmp170, rotateX(f1; V_MUL_F32 vDst(VGPR159) src0(VGPR144) src1(VGPR150) // VOP2 V_MUL_F32 vDst(VGPR160) src0(VGPR144) src1(VGPR153) // VOP2 V_MUL_F32 vDst(VGPR161) src0(VGPR144) src1(VGPR156) // VOP2 V_MAC_F32 vDst(VGPR159) src0(VGPR145) src1(VGPR151) // VOP2 V_MAC_F32 vDst(VGPR160) src0(VGPR145) src1(VGPR154) // VOP2 V_MAC_F32 vDst(VGPR161) src0(VGPR145) src1(VGPR157) // VOP2 V_MAC_F32 vDst(VGPR159) src0(VGPR146) src1(VGPR152) // VOP2 V_MAC_F32 vDst(VGPR160) src0(VGPR146) src1(VGPR155) // VOP2 V_MAC_F32 vDst(VGPR161) src0(VGPR146) src1(VGPR158) // VOP2 # OpStore: : tmp176 >> param179 V_MOV_B32 vDst(VGPR126) src0(VGPR159) V_MOV_B32 vDst(VGPR127) src0(VGPR160) V_MOV_B32 vDst(VGPR128) src0(VGPR161) # OpStore: : const178 >> param180 V_MOV_B32 vDst(VGPR162) src0(LITERAL_CONST) const: 0x3fe66666 V_MOV_B32 vDst(VGPR163) src0(LITERAL_CONST) const: 0x3fe66666 V_MOV_B32 vDst(VGPR164) src0(LITERAL_CONST) const: 0x3fe66666 V_MOV_B32 vDst(VGPR129) src0(VGPR162) V_MOV_B32 vDst(VGPR130) src0(VGPR163) V_MOV_B32 vDst(VGPR131) src0(VGPR164) # 181: OpFunctionCall: Float: boxSDF(vf3;vf3;(param179, param180) S_ADD_U32 sDst(SGPR41) src0(LITERAL_CONST) src1(0) const: 0x7e # VGPR[126:128] S_ADD_U32 sDst(SGPR42) src0(LITERAL_CONST) src1(0) const: 0x81 # VGPR[129:131] S_MOV_B64 sDst(SGPR62) src0(EXEC) S_MOV_B32 sDst(SGPR40) src0(LITERAL_CONST) const: 0xa5 # VGPR165 # Indirect branch to boxSDF(vf3;vf3;: ??? S_GETPC_B64 sDst(SGPR38) src0(SGPR38) S_ADD_U32 sDst(SGPR38) src0(SGPR38) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR39) src0(SGPR39) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR38) src0(SGPR38) S_MOV_B64 sDst(EXEC) src0(SGPR62) # .lbl2 # 185: OpLoad: FloatVector3: tmp185 << samplePoint S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR57) const: 0x0 V_MOVRELS_B32 vDst(VGPR166) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR167) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR168) src0(VGPR2) # OpStore: : tmp185 >> param184 V_MOV_B32 vDst(VGPR132) src0(VGPR166) V_MOV_B32 vDst(VGPR133) src0(VGPR167) V_MOV_B32 vDst(VGPR134) src0(VGPR168) # OpStore: : const183 >> param186 V_MOV_B32 vDst(VGPR169) src0(LITERAL_CONST) const: 0x3f8ccccd V_MOV_B32 vDst(VGPR135) src0(VGPR169) # 187: OpFunctionCall: Float: sphereSDF(vf3;f1;(param184, param186) S_ADD_U32 sDst(SGPR49) src0(LITERAL_CONST) src1(0) const: 0x84 # VGPR[132:134] S_ADD_U32 sDst(SGPR50) src0(LITERAL_CONST) src1(0) const: 0x87 # VGPR135 S_MOV_B64 sDst(SGPR64) src0(EXEC) S_MOV_B32 sDst(SGPR48) src0(LITERAL_CONST) const: 0xaa # VGPR170 # Indirect branch to sphereSDF(vf3;f1;: ??? S_GETPC_B64 sDst(SGPR46) src0(SGPR46) S_ADD_U32 sDst(SGPR46) src0(SGPR46) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR47) src0(SGPR47) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR46) src0(SGPR46) S_MOV_B64 sDst(EXEC) src0(SGPR64) # .lbl3 # 191: OpLoad: FloatVector3: tmp191 << samplePoint S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR57) const: 0x0 V_MOVRELS_B32 vDst(VGPR171) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR172) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR173) src0(VGPR2) # OpStore: : tmp191 >> param190 V_MOV_B32 vDst(VGPR136) src0(VGPR171) V_MOV_B32 vDst(VGPR137) src0(VGPR172) V_MOV_B32 vDst(VGPR138) src0(VGPR173) # OpStore: : const189 >> param192 V_MOV_B32 vDst(VGPR174) src0(LITERAL_CONST) const: 0x3f99999a V_MOV_B32 vDst(VGPR139) src0(VGPR174) # 193: OpFunctionCall: Float: sphereSDF(vf3;f1;(param190, param192) S_ADD_U32 sDst(SGPR49) src0(LITERAL_CONST) src1(0) const: 0x88 # VGPR[136:138] S_ADD_U32 sDst(SGPR50) src0(LITERAL_CONST) src1(0) const: 0x8b # VGPR139 S_MOV_B64 sDst(SGPR66) src0(EXEC) S_MOV_B32 sDst(SGPR48) src0(LITERAL_CONST) const: 0xaf # VGPR175 # Indirect branch to sphereSDF(vf3;f1;: ??? S_GETPC_B64 sDst(SGPR46) src0(SGPR46) S_ADD_U32 sDst(SGPR46) src0(SGPR46) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR47) src0(SGPR47) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR46) src0(SGPR46) S_MOV_B64 sDst(EXEC) src0(SGPR66) # .lbl4 # OpStore: : boxSDF(vf3;vf3; >> param194 V_MOV_B32 vDst(VGPR140) src0(VGPR165) # OpStore: : sphereSDF(vf3;f1; >> param196 V_MOV_B32 vDst(VGPR141) src0(VGPR170) # 198: OpFunctionCall: Float: differenceSDF(f1;f1;(param194, param196) S_ADD_U32 sDst(SGPR33) src0(LITERAL_CONST) src1(0) const: 0x8c # VGPR140 S_ADD_U32 sDst(SGPR34) src0(LITERAL_CONST) src1(0) const: 0x8d # VGPR141 S_MOV_B64 sDst(SGPR68) src0(EXEC) S_MOV_B32 sDst(SGPR32) src0(LITERAL_CONST) const: 0xb0 # VGPR176 # Indirect branch to differenceSDF(f1;f1;: ??? S_GETPC_B64 sDst(SGPR30) src0(SGPR30) S_ADD_U32 sDst(SGPR30) src0(SGPR30) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR31) src0(SGPR31) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR30) src0(SGPR30) S_MOV_B64 sDst(EXEC) src0(SGPR68) # .lbl5 # OpStore: : differenceSDF(f1;f1; >> param199 V_MOV_B32 vDst(VGPR142) src0(VGPR176) # OpStore: : sphereSDF(vf3;f1; >> param200 V_MOV_B32 vDst(VGPR143) src0(VGPR175) # 202: OpFunctionCall: Float: intersectSDF(f1;f1;(param199, param200) S_ADD_U32 sDst(SGPR25) src0(LITERAL_CONST) src1(0) const: 0x8e # VGPR142 S_ADD_U32 sDst(SGPR26) src0(LITERAL_CONST) src1(0) const: 0x8f # VGPR143 S_MOV_B64 sDst(SGPR70) src0(EXEC) S_MOV_B32 sDst(SGPR24) src0(LITERAL_CONST) const: 0xb1 # VGPR177 # Indirect branch to intersectSDF(f1;f1;: ??? S_GETPC_B64 sDst(SGPR22) src0(SGPR22) S_ADD_U32 sDst(SGPR22) src0(SGPR22) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR23) src0(SGPR23) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR22) src0(SGPR22) S_MOV_B64 sDst(EXEC) src0(SGPR70) # .lbl6 # OpReturnValue: : << intersectSDF(f1;f1; S_MOV_B32 sDst(M0) src0(SGPR56) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR177) S_SETPC_B64 sDst(SGPR54) src0(SGPR54) # Float shortestDistanceToSurface(vf3;vf3;f1;f1;(FloatVector3* eye, FloatVector3* marchingDirection, Float* start, Float* end) Function: Float shortestDistanceToSurface(vf3;vf3;f1;f1;(, FloatVector3 sceneSDF(vf3;.marchingDirection, Float sceneSDF(vf3;.start, Float sceneSDF(vf3;.end) S_MOV_B64 sDst(SGPR80) src0(EXEC) # lb44 Label: lb44 # 206: OpLoad: Float: tmp206 << start S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR77) const: 0x0 V_MOVRELS_B32 vDst(VGPR183) src0(VGPR0) # OpStore: : tmp206 >> depth V_MOV_B32 vDst(VGPR178) src0(VGPR183) # OpStore: : const210 >> i V_MOV_B32 vDst(VGPR179) src0(0) # OpBranch: to lb211 S_BRANCH ??? lb211 # lb211 Label: lb211 # OpLoopMerge: (merge: lb213, continue: lb214) # CF Block: Merge: lb213, Continue: lb214 S_MOV_B64 sDst(SGPR82) src0(EXEC) S_MOV_B64 sDst(SGPR84) src0(EXEC) S_MOV_B64 sDst(SGPR86) src0(EXEC) Label: lb211Loop # OpBranch: to lb215 S_BRANCH ??? lb215 # lb215 Label: lb215 # 216: OpLoad: Int: tmp216 << i Decorators: RelaxedPrecision # 219: OpSLessThan: Bool: tmp219 << tmp216, const217 V_MOV_B32 vDst(VGPR184) src0(LITERAL_CONST) const: 0x000000ff V_CMP_LT_I32 dst(SGPR88) src0(VGPR179) src1(VGPR184) // VOP3a # OpBranchConditional: if(tmp219) then branch to lb212, else branch to lb213 # CF Block: Cond Branch: true: lb212, false: lb213 S_AND_B64 sDst(EXEC) src0(SGPR88) src1(EXEC) S_CBRANCH_EXECZ ??? lb213 S_BRANCH ??? lb212 # lb212 Label: lb212 # 221: OpLoad: FloatVector3: tmp221 << eye S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR75) const: 0x0 V_MOVRELS_B32 vDst(VGPR185) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR186) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR187) src0(VGPR2) # 222: OpLoad: Float: tmp222 << depth # 223: OpLoad: FloatVector3: tmp223 << marchingDirection S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR76) const: 0x0 V_MOVRELS_B32 vDst(VGPR188) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR189) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR190) src0(VGPR2) # 224: OpVectorTimesScalar: FloatVector3: tmp224 << tmp223, tmp222 V_MUL_F32 vDst(VGPR191) src0(VGPR178) src1(VGPR188) // VOP2 V_MUL_F32 vDst(VGPR192) src0(VGPR178) src1(VGPR189) // VOP2 V_MUL_F32 vDst(VGPR193) src0(VGPR178) src1(VGPR190) // VOP2 # 225: OpFAdd: FloatVector3: tmp225 << tmp221, tmp224 V_ADD_F32 vDst(VGPR194) src0(VGPR185) src1(VGPR191) // VOP2 V_ADD_F32 vDst(VGPR195) src0(VGPR186) src1(VGPR192) // VOP2 V_ADD_F32 vDst(VGPR196) src0(VGPR187) src1(VGPR193) // VOP2 # OpStore: : tmp225 >> param226 V_MOV_B32 vDst(VGPR180) src0(VGPR194) V_MOV_B32 vDst(VGPR181) src0(VGPR195) V_MOV_B32 vDst(VGPR182) src0(VGPR196) # 227: OpFunctionCall: Float: sceneSDF(vf3;(param226) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xb4 # VGPR[180:182] S_MOV_B64 sDst(SGPR90) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0xc5 # VGPR197 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR90) # .lbl7 # 230: OpFOrdLessThan: Bool: tmp230 << sceneSDF(vf3;, const229 V_MOV_B32 vDst(VGPR198) src0(LITERAL_CONST) const: 0x38d1b717 V_CMP_LT_F32 dst(SGPR92) src0(VGPR197) src1(VGPR198) // VOP3a # OpSelectionMerge: (merge: lb232) # CF Block: Merge: lb232 S_MOV_B64 sDst(SGPR94) src0(EXEC) # OpBranchConditional: if(tmp230) then branch to lb231, else branch to lb232 # CF Block: Cond Branch: true: lb231, false: lb232 S_AND_B64 sDst(EXEC) src0(SGPR92) src1(EXEC) S_CBRANCH_EXECZ ??? lb232 S_BRANCH ??? lb231 # lb231 Label: lb231 # 233: OpLoad: Float: tmp233 << depth # OpReturnValue: : << tmp233 S_MOV_B32 sDst(M0) src0(SGPR74) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR178) S_SETPC_B64 sDst(SGPR72) src0(SGPR72) # lb232 Label: lb232 # 236: OpLoad: Float: tmp236 << depth # 237: OpFAdd: Float: tmp237 << tmp236, sceneSDF(vf3; V_ADD_F32 vDst(VGPR199) src0(VGPR178) src1(VGPR197) // VOP2 # OpStore: : tmp237 >> depth V_MOV_B32 vDst(VGPR178) src0(VGPR199) # 238: OpLoad: Float: tmp238 << depth # 239: OpLoad: Float: tmp239 << end S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR200) src0(VGPR0) # 240: OpFOrdGreaterThanEqual: Bool: tmp240 << tmp238, tmp239 V_CMP_GE_F32 dst(SGPR96) src0(VGPR178) src1(VGPR200) // VOP3a # OpSelectionMerge: (merge: lb242) # CF Block: Merge: lb242 S_MOV_B64 sDst(SGPR98) src0(EXEC) # OpBranchConditional: if(tmp240) then branch to lb241, else branch to lb242 # CF Block: Cond Branch: true: lb241, false: lb242 S_AND_B64 sDst(EXEC) src0(SGPR96) src1(EXEC) S_CBRANCH_EXECZ ??? lb242 S_BRANCH ??? lb241 # lb241 Label: lb241 # 243: OpLoad: Float: tmp243 << end S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR201) src0(VGPR0) # OpReturnValue: : << tmp243 S_MOV_B32 sDst(M0) src0(SGPR74) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR201) S_SETPC_B64 sDst(SGPR72) src0(SGPR72) # lb242 Label: lb242 # OpBranch: to lb214 S_BRANCH ??? lb214 # lb214 Label: lb214 # 245: OpLoad: Int: tmp245 << i Decorators: RelaxedPrecision # 247: OpIAdd: Int: tmp247 << tmp245, const246 Decorators: RelaxedPrecision V_MOV_B32 vDst(VGPR202) src0(1_INT) V_ADD_I32 vDst(VGPR203) src0(VGPR179) src1(VGPR202) // VOP2 # OpStore: : tmp247 >> i V_MOV_B32 vDst(VGPR179) src0(VGPR203) # OpBranch: to lb211 S_BRANCH ??? lb211 # lb213 Label: lb213 # 248: OpLoad: Float: tmp248 << end S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR204) src0(VGPR0) # OpReturnValue: : << tmp248 S_MOV_B32 sDst(M0) src0(SGPR74) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR204) S_SETPC_B64 sDst(SGPR72) src0(SGPR72) # FloatVector3 rayDirection(f1;vf2;vf2;(Float* fieldOfView, FloatVector2* size, FloatVector2* fragCoord) Function: FloatVector3 rayDirection(f1;vf2;vf2;(, FloatVector2 shortestDistanceToSurface(vf3;vf3;f1;f1;.size, FloatVector2 shortestDistanceToSurface(vf3;vf3;f1;f1;.fragCoord) S_MOV_B64 sDst(SGPR106) src0(EXEC) # lb52 Label: lb52 # 252: OpLoad: FloatVector2: tmp252 << fragCoord S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR105) const: 0x0 V_MOVRELS_B32 vDst(VGPR205) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR206) src0(VGPR1) # 253: OpLoad: FloatVector2: tmp253 << size S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR104) const: 0x0 V_MOVRELS_B32 vDst(VGPR207) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR208) src0(VGPR1) # 254: OpCompositeConstruct: FloatVector2: tmp254 << const135, const135 V_MOV_B32 vDst(VGPR209) src0(2_0_F) V_MOV_B32 vDst(VGPR210) src0(2_0_F) # 255: OpFDiv: FloatVector2: tmp255 << tmp253, tmp254 V_RCP_F32 vDst(VGPR211) src0(VGPR209) V_RCP_F32 vDst(VGPR212) src0(VGPR210) V_MUL_F32 vDst(VGPR211) src0(VGPR207) src1(VGPR211) // VOP2 V_MUL_F32 vDst(VGPR212) src0(VGPR208) src1(VGPR212) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR211) src0(VGPR211) src1(VGPR209) src2(VGPR207) abs(0) clamp(0) omod(0) neg(0) // VOP3a V_DIV_FIXUP_F32 vDst(VGPR212) src0(VGPR212) src1(VGPR210) src2(VGPR208) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 256: OpFSub: FloatVector2: tmp256 << tmp252, tmp255 V_SUB_F32 vDst(VGPR213) src0(VGPR205) src1(VGPR211) // VOP2 V_SUB_F32 vDst(VGPR214) src0(VGPR206) src1(VGPR212) // VOP2 # 258: OpAccessChain: Float*: size[1] # 259: OpLoad: Float: tmp259 << size[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR104) const: 0x0 V_MOVRELS_B32 vDst(VGPR215) src0(VGPR1) # 260: OpLoad: Float: tmp260 << fieldOfView S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR103) const: 0x0 V_MOVRELS_B32 vDst(VGPR216) src0(VGPR0) # 261: OpExtInst(Radians): Float: tmp261 << tmp260 V_MOV_B32 vDst(VGPR218) src0(LITERAL_CONST) const: 0x3c8efa35 V_MUL_F32 vDst(VGPR217) src0(VGPR216) src1(VGPR218) // VOP2 # 262: OpFDiv: Float: tmp262 << tmp261, const135 V_MOV_B32 vDst(VGPR219) src0(2_0_F) V_RCP_F32 vDst(VGPR220) src0(VGPR219) V_MUL_F32 vDst(VGPR220) src0(VGPR217) src1(VGPR220) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR220) src0(VGPR220) src1(VGPR219) src2(VGPR217) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 263: OpExtInst(Tan): Float: tmp263 << tmp262 V_MUL_F32 vDst(VGPR221) src0(LITERAL_CONST) src1(VGPR220) // VOP2 const: 0x3e22f983 V_SIN_F32 vDst(VGPR222) src0(VGPR221) V_COS_F32 vDst(VGPR221) src0(VGPR221) V_RCP_F32 vDst(VGPR223) src0(VGPR221) V_MUL_F32 vDst(VGPR223) src0(VGPR222) src1(VGPR223) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR223) src0(VGPR223) src1(VGPR221) src2(VGPR222) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 264: OpFDiv: Float: tmp264 << tmp259, tmp263 V_RCP_F32 vDst(VGPR224) src0(VGPR223) V_MUL_F32 vDst(VGPR224) src0(VGPR215) src1(VGPR224) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR224) src0(VGPR224) src1(VGPR223) src2(VGPR215) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 267: OpFNegate: Float: tmp267 << tmp264 V_MUL_F32 vDst(VGPR225) src0(M1_0_F) src1(VGPR224) // VOP2 # 268: OpCompositeExtract: Float: tmp268 << tmp256, 0 V_MOV_B32 vDst(VGPR226) src0(VGPR213) # 269: OpCompositeExtract: Float: tmp269 << tmp256, 1 V_MOV_B32 vDst(VGPR227) src0(VGPR214) # 270: OpCompositeConstruct: FloatVector3: tmp270 << tmp268, tmp269, tmp267 V_MOV_B32 vDst(VGPR228) src0(VGPR226) V_MOV_B32 vDst(VGPR229) src0(VGPR227) V_MOV_B32 vDst(VGPR230) src0(VGPR225) # 271: OpExtInst(Normalize): FloatVector3: tmp271 << tmp270 V_MUL_F32 vDst(VGPR231) src0(VGPR228) src1(VGPR228) // VOP2 V_MAC_F32 vDst(VGPR231) src0(VGPR229) src1(VGPR229) // VOP2 V_MAC_F32 vDst(VGPR231) src0(VGPR230) src1(VGPR230) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR231) src0(VGPR231) V_MUL_F32 vDst(VGPR232) src0(VGPR228) src1(VGPR231) // VOP2 V_MUL_F32 vDst(VGPR233) src0(VGPR229) src1(VGPR231) // VOP2 V_MUL_F32 vDst(VGPR234) src0(VGPR230) src1(VGPR231) // VOP2 # OpReturnValue: : << tmp271 S_MOV_B32 sDst(M0) src0(SGPR102) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR232) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR233) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR234) S_SETPC_B64 sDst(SGPR100) src0(SGPR100) # FloatVector3 estimateNormal(vf3;(FloatVector3* p) Function: FloatVector3 estimateNormal(vf3;() S_MOV_B64 sDst(SGPR112) src0(EXEC) # lb56 Label: lb56 # 274: OpAccessChain: Float*: p[0] # 275: OpLoad: Float: tmp275 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR253) src0(VGPR0) # 276: OpFAdd: Float: tmp276 << tmp275, const229 V_MOV_B32 vDst(VGPR254) src0(LITERAL_CONST) const: 0x38d1b717 V_ADD_F32 vDst(VGPR255) src0(VGPR253) src1(VGPR254) // VOP2 # 277: OpAccessChain: Float*: p[1] # 278: OpLoad: Float: tmp278 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR256) src0(VGPR1) # 279: OpAccessChain: Float*: p[2] # 280: OpLoad: Float: tmp280 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR257) src0(VGPR2) # 281: OpCompositeConstruct: FloatVector3: tmp281 << tmp276, tmp278, tmp280 V_MOV_B32 vDst(VGPR258) src0(VGPR255) V_MOV_B32 vDst(VGPR259) src0(VGPR256) V_MOV_B32 vDst(VGPR260) src0(VGPR257) # OpStore: : tmp281 >> param282 V_MOV_B32 vDst(VGPR235) src0(VGPR258) V_MOV_B32 vDst(VGPR236) src0(VGPR259) V_MOV_B32 vDst(VGPR237) src0(VGPR260) # 283: OpFunctionCall: Float: sceneSDF(vf3;(param282) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xeb # VGPR[235:237] S_MOV_B64 sDst(SGPR114) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0x105 # VGPR261 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR114) # .lbl8 # 284: OpAccessChain: Float*: p[0] # 285: OpLoad: Float: tmp285 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR262) src0(VGPR0) # 286: OpFSub: Float: tmp286 << tmp285, const229 V_MOV_B32 vDst(VGPR263) src0(LITERAL_CONST) const: 0x38d1b717 V_SUB_F32 vDst(VGPR264) src0(VGPR262) src1(VGPR263) // VOP2 # 287: OpAccessChain: Float*: p[1] # 288: OpLoad: Float: tmp288 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR265) src0(VGPR1) # 289: OpAccessChain: Float*: p[2] # 290: OpLoad: Float: tmp290 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR266) src0(VGPR2) # 291: OpCompositeConstruct: FloatVector3: tmp291 << tmp286, tmp288, tmp290 V_MOV_B32 vDst(VGPR267) src0(VGPR264) V_MOV_B32 vDst(VGPR268) src0(VGPR265) V_MOV_B32 vDst(VGPR269) src0(VGPR266) # OpStore: : tmp291 >> param292 V_MOV_B32 vDst(VGPR238) src0(VGPR267) V_MOV_B32 vDst(VGPR239) src0(VGPR268) V_MOV_B32 vDst(VGPR240) src0(VGPR269) # 293: OpFunctionCall: Float: sceneSDF(vf3;(param292) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xee # VGPR[238:240] S_MOV_B64 sDst(SGPR116) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0x10e # VGPR270 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR116) # .lbl9 # 294: OpFSub: Float: tmp294 << sceneSDF(vf3;, sceneSDF(vf3; V_SUB_F32 vDst(VGPR271) src0(VGPR261) src1(VGPR270) // VOP2 # 295: OpAccessChain: Float*: p[0] # 296: OpLoad: Float: tmp296 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR272) src0(VGPR0) # 297: OpAccessChain: Float*: p[1] # 298: OpLoad: Float: tmp298 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR273) src0(VGPR1) # 299: OpFAdd: Float: tmp299 << tmp298, const229 V_MOV_B32 vDst(VGPR274) src0(LITERAL_CONST) const: 0x38d1b717 V_ADD_F32 vDst(VGPR275) src0(VGPR273) src1(VGPR274) // VOP2 # 300: OpAccessChain: Float*: p[2] # 301: OpLoad: Float: tmp301 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR276) src0(VGPR2) # 302: OpCompositeConstruct: FloatVector3: tmp302 << tmp296, tmp299, tmp301 V_MOV_B32 vDst(VGPR277) src0(VGPR272) V_MOV_B32 vDst(VGPR278) src0(VGPR275) V_MOV_B32 vDst(VGPR279) src0(VGPR276) # OpStore: : tmp302 >> param303 V_MOV_B32 vDst(VGPR241) src0(VGPR277) V_MOV_B32 vDst(VGPR242) src0(VGPR278) V_MOV_B32 vDst(VGPR243) src0(VGPR279) # 304: OpFunctionCall: Float: sceneSDF(vf3;(param303) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xf1 # VGPR[241:243] S_MOV_B64 sDst(SGPR118) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0x118 # VGPR280 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR118) # .lbl10 # 305: OpAccessChain: Float*: p[0] # 306: OpLoad: Float: tmp306 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR281) src0(VGPR0) # 307: OpAccessChain: Float*: p[1] # 308: OpLoad: Float: tmp308 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR282) src0(VGPR1) # 309: OpFSub: Float: tmp309 << tmp308, const229 V_MOV_B32 vDst(VGPR283) src0(LITERAL_CONST) const: 0x38d1b717 V_SUB_F32 vDst(VGPR284) src0(VGPR282) src1(VGPR283) // VOP2 # 310: OpAccessChain: Float*: p[2] # 311: OpLoad: Float: tmp311 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR285) src0(VGPR2) # 312: OpCompositeConstruct: FloatVector3: tmp312 << tmp306, tmp309, tmp311 V_MOV_B32 vDst(VGPR286) src0(VGPR281) V_MOV_B32 vDst(VGPR287) src0(VGPR284) V_MOV_B32 vDst(VGPR288) src0(VGPR285) # OpStore: : tmp312 >> param313 V_MOV_B32 vDst(VGPR244) src0(VGPR286) V_MOV_B32 vDst(VGPR245) src0(VGPR287) V_MOV_B32 vDst(VGPR246) src0(VGPR288) # 314: OpFunctionCall: Float: sceneSDF(vf3;(param313) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xf4 # VGPR[244:246] S_MOV_B64 sDst(SGPR120) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0x121 # VGPR289 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR120) # .lbl11 # 315: OpFSub: Float: tmp315 << sceneSDF(vf3;, sceneSDF(vf3; V_SUB_F32 vDst(VGPR290) src0(VGPR280) src1(VGPR289) // VOP2 # 316: OpAccessChain: Float*: p[0] # 317: OpLoad: Float: tmp317 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR291) src0(VGPR0) # 318: OpAccessChain: Float*: p[1] # 319: OpLoad: Float: tmp319 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR292) src0(VGPR1) # 320: OpAccessChain: Float*: p[2] # 321: OpLoad: Float: tmp321 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR293) src0(VGPR2) # 322: OpFAdd: Float: tmp322 << tmp321, const229 V_MOV_B32 vDst(VGPR294) src0(LITERAL_CONST) const: 0x38d1b717 V_ADD_F32 vDst(VGPR295) src0(VGPR293) src1(VGPR294) // VOP2 # 323: OpCompositeConstruct: FloatVector3: tmp323 << tmp317, tmp319, tmp322 V_MOV_B32 vDst(VGPR296) src0(VGPR291) V_MOV_B32 vDst(VGPR297) src0(VGPR292) V_MOV_B32 vDst(VGPR298) src0(VGPR295) # OpStore: : tmp323 >> param324 V_MOV_B32 vDst(VGPR247) src0(VGPR296) V_MOV_B32 vDst(VGPR248) src0(VGPR297) V_MOV_B32 vDst(VGPR249) src0(VGPR298) # 325: OpFunctionCall: Float: sceneSDF(vf3;(param324) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xf7 # VGPR[247:249] S_MOV_B64 sDst(SGPR122) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0x12b # VGPR299 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR122) # .lbl12 # 326: OpAccessChain: Float*: p[0] # 327: OpLoad: Float: tmp327 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR300) src0(VGPR0) # 328: OpAccessChain: Float*: p[1] # 329: OpLoad: Float: tmp329 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR301) src0(VGPR1) # 330: OpAccessChain: Float*: p[2] # 331: OpLoad: Float: tmp331 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR302) src0(VGPR2) # 332: OpFSub: Float: tmp332 << tmp331, const229 V_MOV_B32 vDst(VGPR303) src0(LITERAL_CONST) const: 0x38d1b717 V_SUB_F32 vDst(VGPR304) src0(VGPR302) src1(VGPR303) // VOP2 # 333: OpCompositeConstruct: FloatVector3: tmp333 << tmp327, tmp329, tmp332 V_MOV_B32 vDst(VGPR305) src0(VGPR300) V_MOV_B32 vDst(VGPR306) src0(VGPR301) V_MOV_B32 vDst(VGPR307) src0(VGPR304) # OpStore: : tmp333 >> param334 V_MOV_B32 vDst(VGPR250) src0(VGPR305) V_MOV_B32 vDst(VGPR251) src0(VGPR306) V_MOV_B32 vDst(VGPR252) src0(VGPR307) # 335: OpFunctionCall: Float: sceneSDF(vf3;(param334) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xfa # VGPR[250:252] S_MOV_B64 sDst(SGPR124) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0x134 # VGPR308 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR124) # .lbl13 # 336: OpFSub: Float: tmp336 << sceneSDF(vf3;, sceneSDF(vf3; V_SUB_F32 vDst(VGPR309) src0(VGPR299) src1(VGPR308) // VOP2 # 337: OpCompositeConstruct: FloatVector3: tmp337 << tmp294, tmp315, tmp336 V_MOV_B32 vDst(VGPR310) src0(VGPR271) V_MOV_B32 vDst(VGPR311) src0(VGPR290) V_MOV_B32 vDst(VGPR312) src0(VGPR309) # 338: OpExtInst(Normalize): FloatVector3: tmp338 << tmp337 V_MUL_F32 vDst(VGPR313) src0(VGPR310) src1(VGPR310) // VOP2 V_MAC_F32 vDst(VGPR313) src0(VGPR311) src1(VGPR311) // VOP2 V_MAC_F32 vDst(VGPR313) src0(VGPR312) src1(VGPR312) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR313) src0(VGPR313) V_MUL_F32 vDst(VGPR314) src0(VGPR310) src1(VGPR313) // VOP2 V_MUL_F32 vDst(VGPR315) src0(VGPR311) src1(VGPR313) // VOP2 V_MUL_F32 vDst(VGPR316) src0(VGPR312) src1(VGPR313) // VOP2 # OpReturnValue: : << tmp338 S_MOV_B32 sDst(M0) src0(SGPR110) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR314) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR315) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR316) S_SETPC_B64 sDst(SGPR108) src0(SGPR108) # FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;(FloatVector3* k_d, FloatVector3* k_s, Float* alpha, FloatVector3* p, FloatVector3* eye, FloatVector3* lightPos, FloatVector3* lightIntensity) Function: FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;(, FloatVector3 estimateNormal(vf3;.k_s, Float estimateNormal(vf3;.alpha, FloatVector3 estimateNormal(vf3;.p, FloatVector3 estimateNormal(vf3;.eye, FloatVector3 estimateNormal(vf3;.lightPos, FloatVector3 estimateNormal(vf3;.lightIntensity) S_MOV_B64 sDst(SGPR136) src0(EXEC) # lb66 Label: lb66 # 343: OpLoad: FloatVector3: tmp343 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR132) const: 0x0 V_MOVRELS_B32 vDst(VGPR320) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR321) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR322) src0(VGPR2) # OpStore: : tmp343 >> param342 V_MOV_B32 vDst(VGPR317) src0(VGPR320) V_MOV_B32 vDst(VGPR318) src0(VGPR321) V_MOV_B32 vDst(VGPR319) src0(VGPR322) # 344: OpFunctionCall: FloatVector3: estimateNormal(vf3;(param342) S_ADD_U32 sDst(SGPR111) src0(LITERAL_CONST) src1(0) const: 0x13d # VGPR[317:319] S_MOV_B64 sDst(SGPR138) src0(EXEC) S_MOV_B32 sDst(SGPR110) src0(LITERAL_CONST) const: 0x143 # VGPR[323:325] # Indirect branch to estimateNormal(vf3;: ??? S_GETPC_B64 sDst(SGPR108) src0(SGPR108) S_ADD_U32 sDst(SGPR108) src0(SGPR108) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR109) src0(SGPR109) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR108) src0(SGPR108) S_MOV_B64 sDst(EXEC) src0(SGPR138) # .lbl14 # 346: OpLoad: FloatVector3: tmp346 << lightPos S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR134) const: 0x0 V_MOVRELS_B32 vDst(VGPR326) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR327) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR328) src0(VGPR2) # 347: OpLoad: FloatVector3: tmp347 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR132) const: 0x0 V_MOVRELS_B32 vDst(VGPR329) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR330) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR331) src0(VGPR2) # 348: OpFSub: FloatVector3: tmp348 << tmp346, tmp347 V_SUB_F32 vDst(VGPR332) src0(VGPR326) src1(VGPR329) // VOP2 V_SUB_F32 vDst(VGPR333) src0(VGPR327) src1(VGPR330) // VOP2 V_SUB_F32 vDst(VGPR334) src0(VGPR328) src1(VGPR331) // VOP2 # 349: OpExtInst(Normalize): FloatVector3: tmp349 << tmp348 V_MUL_F32 vDst(VGPR335) src0(VGPR332) src1(VGPR332) // VOP2 V_MAC_F32 vDst(VGPR335) src0(VGPR333) src1(VGPR333) // VOP2 V_MAC_F32 vDst(VGPR335) src0(VGPR334) src1(VGPR334) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR335) src0(VGPR335) V_MUL_F32 vDst(VGPR336) src0(VGPR332) src1(VGPR335) // VOP2 V_MUL_F32 vDst(VGPR337) src0(VGPR333) src1(VGPR335) // VOP2 V_MUL_F32 vDst(VGPR338) src0(VGPR334) src1(VGPR335) // VOP2 # 351: OpLoad: FloatVector3: tmp351 << eye S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR133) const: 0x0 V_MOVRELS_B32 vDst(VGPR339) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR340) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR341) src0(VGPR2) # 352: OpLoad: FloatVector3: tmp352 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR132) const: 0x0 V_MOVRELS_B32 vDst(VGPR342) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR343) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR344) src0(VGPR2) # 353: OpFSub: FloatVector3: tmp353 << tmp351, tmp352 V_SUB_F32 vDst(VGPR345) src0(VGPR339) src1(VGPR342) // VOP2 V_SUB_F32 vDst(VGPR346) src0(VGPR340) src1(VGPR343) // VOP2 V_SUB_F32 vDst(VGPR347) src0(VGPR341) src1(VGPR344) // VOP2 # 354: OpExtInst(Normalize): FloatVector3: tmp354 << tmp353 V_MUL_F32 vDst(VGPR348) src0(VGPR345) src1(VGPR345) // VOP2 V_MAC_F32 vDst(VGPR348) src0(VGPR346) src1(VGPR346) // VOP2 V_MAC_F32 vDst(VGPR348) src0(VGPR347) src1(VGPR347) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR348) src0(VGPR348) V_MUL_F32 vDst(VGPR349) src0(VGPR345) src1(VGPR348) // VOP2 V_MUL_F32 vDst(VGPR350) src0(VGPR346) src1(VGPR348) // VOP2 V_MUL_F32 vDst(VGPR351) src0(VGPR347) src1(VGPR348) // VOP2 # 357: OpFNegate: FloatVector3: tmp357 << tmp349 V_MUL_F32 vDst(VGPR352) src0(M1_0_F) src1(VGPR336) // VOP2 V_MUL_F32 vDst(VGPR353) src0(M1_0_F) src1(VGPR337) // VOP2 V_MUL_F32 vDst(VGPR354) src0(M1_0_F) src1(VGPR338) // VOP2 # 359: OpExtInst(Reflect): FloatVector3: tmp359 << tmp357, estimateNormal(vf3; V_MUL_F32 vDst(VGPR358) src0(VGPR352) src1(VGPR323) // VOP2 V_MAC_F32 vDst(VGPR358) src0(VGPR353) src1(VGPR324) // VOP2 V_MAC_F32 vDst(VGPR358) src0(VGPR354) src1(VGPR325) // VOP2 V_MUL_F32 vDst(VGPR358) src0(2_0_F) src1(VGPR358) // VOP2 V_MUL_F32 vDst(VGPR355) src0(VGPR323) src1(VGPR358) // VOP2 V_MUL_F32 vDst(VGPR356) src0(VGPR324) src1(VGPR358) // VOP2 V_MUL_F32 vDst(VGPR357) src0(VGPR325) src1(VGPR358) // VOP2 V_SUB_F32 vDst(VGPR355) src0(VGPR352) src1(VGPR355) // VOP2 V_SUB_F32 vDst(VGPR356) src0(VGPR353) src1(VGPR356) // VOP2 V_SUB_F32 vDst(VGPR357) src0(VGPR354) src1(VGPR357) // VOP2 # 360: OpExtInst(Normalize): FloatVector3: tmp360 << tmp359 V_MUL_F32 vDst(VGPR359) src0(VGPR355) src1(VGPR355) // VOP2 V_MAC_F32 vDst(VGPR359) src0(VGPR356) src1(VGPR356) // VOP2 V_MAC_F32 vDst(VGPR359) src0(VGPR357) src1(VGPR357) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR359) src0(VGPR359) V_MUL_F32 vDst(VGPR360) src0(VGPR355) src1(VGPR359) // VOP2 V_MUL_F32 vDst(VGPR361) src0(VGPR356) src1(VGPR359) // VOP2 V_MUL_F32 vDst(VGPR362) src0(VGPR357) src1(VGPR359) // VOP2 # 364: OpDot: Float: tmp364 << tmp349, estimateNormal(vf3; V_MUL_F32 vDst(VGPR363) src0(VGPR336) src1(VGPR323) // VOP2 V_MAC_F32 vDst(VGPR363) src0(VGPR337) src1(VGPR324) // VOP2 V_MAC_F32 vDst(VGPR363) src0(VGPR338) src1(VGPR325) // VOP2 # 368: OpDot: Float: tmp368 << tmp360, tmp354 V_MUL_F32 vDst(VGPR364) src0(VGPR360) src1(VGPR349) // VOP2 V_MAC_F32 vDst(VGPR364) src0(VGPR361) src1(VGPR350) // VOP2 V_MAC_F32 vDst(VGPR364) src0(VGPR362) src1(VGPR351) // VOP2 # 370: OpFOrdLessThan: Bool: tmp370 << tmp364, const96 V_MOV_B32 vDst(VGPR365) src0(LITERAL_CONST) const: 0x00000000 V_CMP_LT_F32 dst(SGPR140) src0(VGPR363) src1(VGPR365) // VOP3a # OpSelectionMerge: (merge: lb372) # CF Block: Merge: lb372 S_MOV_B64 sDst(SGPR142) src0(EXEC) # OpBranchConditional: if(tmp370) then branch to lb371, else branch to lb372 # CF Block: Cond Branch: true: lb371, false: lb372 S_AND_B64 sDst(EXEC) src0(SGPR140) src1(EXEC) S_CBRANCH_EXECZ ??? lb372 S_BRANCH ??? lb371 # lb371 Label: lb371 # OpReturnValue: : << const373 V_MOV_B32 vDst(VGPR366) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR367) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR368) src0(LITERAL_CONST) const: 0x00000000 S_MOV_B32 sDst(M0) src0(SGPR128) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR366) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR367) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR368) S_SETPC_B64 sDst(SGPR126) src0(SGPR126) # lb372 Label: lb372 # 376: OpFOrdLessThan: Bool: tmp376 << tmp368, const96 V_MOV_B32 vDst(VGPR369) src0(LITERAL_CONST) const: 0x00000000 V_CMP_LT_F32 dst(SGPR144) src0(VGPR364) src1(VGPR369) // VOP3a # OpSelectionMerge: (merge: lb378) # CF Block: Merge: lb378 S_MOV_B64 sDst(SGPR146) src0(EXEC) # OpBranchConditional: if(tmp376) then branch to lb377, else branch to lb378 # CF Block: Cond Branch: true: lb377, false: lb378 S_AND_B64 sDst(EXEC) src0(SGPR144) src1(EXEC) S_CBRANCH_EXECZ ??? lb378 S_BRANCH ??? lb377 # lb377 Label: lb377 # 379: OpLoad: FloatVector3: tmp379 << lightIntensity S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR135) const: 0x0 V_MOVRELS_B32 vDst(VGPR370) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR371) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR372) src0(VGPR2) # 380: OpLoad: FloatVector3: tmp380 << k_d S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR129) const: 0x0 V_MOVRELS_B32 vDst(VGPR373) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR374) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR375) src0(VGPR2) # 382: OpVectorTimesScalar: FloatVector3: tmp382 << tmp380, tmp364 V_MUL_F32 vDst(VGPR376) src0(VGPR363) src1(VGPR373) // VOP2 V_MUL_F32 vDst(VGPR377) src0(VGPR363) src1(VGPR374) // VOP2 V_MUL_F32 vDst(VGPR378) src0(VGPR363) src1(VGPR375) // VOP2 # 383: OpFMul: FloatVector3: tmp383 << tmp379, tmp382 V_MUL_F32 vDst(VGPR379) src0(VGPR370) src1(VGPR376) // VOP2 V_MUL_F32 vDst(VGPR380) src0(VGPR371) src1(VGPR377) // VOP2 V_MUL_F32 vDst(VGPR381) src0(VGPR372) src1(VGPR378) // VOP2 # OpReturnValue: : << tmp383 S_MOV_B32 sDst(M0) src0(SGPR128) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR379) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR380) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR381) S_SETPC_B64 sDst(SGPR126) src0(SGPR126) # lb378 Label: lb378 # 385: OpLoad: FloatVector3: tmp385 << lightIntensity S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR135) const: 0x0 V_MOVRELS_B32 vDst(VGPR382) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR383) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR384) src0(VGPR2) # 386: OpLoad: FloatVector3: tmp386 << k_d S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR129) const: 0x0 V_MOVRELS_B32 vDst(VGPR385) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR386) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR387) src0(VGPR2) # 388: OpVectorTimesScalar: FloatVector3: tmp388 << tmp386, tmp364 V_MUL_F32 vDst(VGPR388) src0(VGPR363) src1(VGPR385) // VOP2 V_MUL_F32 vDst(VGPR389) src0(VGPR363) src1(VGPR386) // VOP2 V_MUL_F32 vDst(VGPR390) src0(VGPR363) src1(VGPR387) // VOP2 # 389: OpLoad: FloatVector3: tmp389 << k_s S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR130) const: 0x0 V_MOVRELS_B32 vDst(VGPR391) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR392) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR393) src0(VGPR2) # 391: OpLoad: Float: tmp391 << alpha S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR131) const: 0x0 V_MOVRELS_B32 vDst(VGPR394) src0(VGPR0) # 392: OpExtInst(Pow): Float: tmp392 << tmp368, tmp391 V_LOG_F32 vDst(VGPR395) src0(VGPR364) V_MUL_F32 vDst(VGPR395) src0(VGPR394) src1(VGPR395) // VOP2 V_EXP_F32 vDst(VGPR395) src0(VGPR395) # 393: OpVectorTimesScalar: FloatVector3: tmp393 << tmp389, tmp392 V_MUL_F32 vDst(VGPR396) src0(VGPR395) src1(VGPR391) // VOP2 V_MUL_F32 vDst(VGPR397) src0(VGPR395) src1(VGPR392) // VOP2 V_MUL_F32 vDst(VGPR398) src0(VGPR395) src1(VGPR393) // VOP2 # 394: OpFAdd: FloatVector3: tmp394 << tmp388, tmp393 V_ADD_F32 vDst(VGPR399) src0(VGPR388) src1(VGPR396) // VOP2 V_ADD_F32 vDst(VGPR400) src0(VGPR389) src1(VGPR397) // VOP2 V_ADD_F32 vDst(VGPR401) src0(VGPR390) src1(VGPR398) // VOP2 # 395: OpFMul: FloatVector3: tmp395 << tmp385, tmp394 V_MUL_F32 vDst(VGPR402) src0(VGPR382) src1(VGPR399) // VOP2 V_MUL_F32 vDst(VGPR403) src0(VGPR383) src1(VGPR400) // VOP2 V_MUL_F32 vDst(VGPR404) src0(VGPR384) src1(VGPR401) // VOP2 # OpReturnValue: : << tmp395 S_MOV_B32 sDst(M0) src0(SGPR128) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR402) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR403) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR404) S_SETPC_B64 sDst(SGPR126) src0(SGPR126) # FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;(FloatVector3* k_a, FloatVector3* k_d, FloatVector3* k_s, Float* alpha, FloatVector3* p, FloatVector3* eye) Function: FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;(, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_d, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_s, Float phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.alpha, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.p, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.eye) S_MOV_B64 sDst(SGPR158) src0(EXEC) # lb75 Label: lb75 # 401: OpLoad: FloatVector3: tmp401 << k_a S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR151) const: 0x0 V_MOVRELS_B32 vDst(VGPR427) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR428) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR429) src0(VGPR2) # 402: OpFMul: FloatVector3: tmp402 << const400, tmp401 V_MOV_B32 vDst(VGPR430) src0(0_5_F) V_MOV_B32 vDst(VGPR431) src0(0_5_F) V_MOV_B32 vDst(VGPR432) src0(0_5_F) V_MUL_F32 vDst(VGPR433) src0(VGPR430) src1(VGPR427) // VOP2 V_MUL_F32 vDst(VGPR434) src0(VGPR431) src1(VGPR428) // VOP2 V_MUL_F32 vDst(VGPR435) src0(VGPR432) src1(VGPR429) // VOP2 # OpStore: : tmp402 >> color V_MOV_B32 vDst(VGPR405) src0(VGPR433) V_MOV_B32 vDst(VGPR406) src0(VGPR434) V_MOV_B32 vDst(VGPR407) src0(VGPR435) # 411: OpLoad: FloatVector3: tmp411 << k_d S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR152) const: 0x0 V_MOVRELS_B32 vDst(VGPR436) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR437) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR438) src0(VGPR2) # OpStore: : tmp411 >> param410 V_MOV_B32 vDst(VGPR408) src0(VGPR436) V_MOV_B32 vDst(VGPR409) src0(VGPR437) V_MOV_B32 vDst(VGPR410) src0(VGPR438) # 413: OpLoad: FloatVector3: tmp413 << k_s S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR153) const: 0x0 V_MOVRELS_B32 vDst(VGPR439) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR440) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR441) src0(VGPR2) # OpStore: : tmp413 >> param412 V_MOV_B32 vDst(VGPR411) src0(VGPR439) V_MOV_B32 vDst(VGPR412) src0(VGPR440) V_MOV_B32 vDst(VGPR413) src0(VGPR441) # 415: OpLoad: Float: tmp415 << alpha S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR154) const: 0x0 V_MOVRELS_B32 vDst(VGPR442) src0(VGPR0) # OpStore: : tmp415 >> param414 V_MOV_B32 vDst(VGPR414) src0(VGPR442) # 417: OpLoad: FloatVector3: tmp417 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR155) const: 0x0 V_MOVRELS_B32 vDst(VGPR443) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR444) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR445) src0(VGPR2) # OpStore: : tmp417 >> param416 V_MOV_B32 vDst(VGPR415) src0(VGPR443) V_MOV_B32 vDst(VGPR416) src0(VGPR444) V_MOV_B32 vDst(VGPR417) src0(VGPR445) # 419: OpLoad: FloatVector3: tmp419 << eye S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR156) const: 0x0 V_MOVRELS_B32 vDst(VGPR446) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR447) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR448) src0(VGPR2) # OpStore: : tmp419 >> param418 V_MOV_B32 vDst(VGPR418) src0(VGPR446) V_MOV_B32 vDst(VGPR419) src0(VGPR447) V_MOV_B32 vDst(VGPR420) src0(VGPR448) # OpStore: : const406 >> param420 V_MOV_B32 vDst(VGPR449) src0(LITERAL_CONST) const: 0x40c00000 V_MOV_B32 vDst(VGPR450) src0(2_0_F) V_MOV_B32 vDst(VGPR451) src0(4_0_F) V_MOV_B32 vDst(VGPR421) src0(VGPR449) V_MOV_B32 vDst(VGPR422) src0(VGPR450) V_MOV_B32 vDst(VGPR423) src0(VGPR451) # OpStore: : const409 >> param422 V_MOV_B32 vDst(VGPR452) src0(LITERAL_CONST) const: 0x3ecccccd V_MOV_B32 vDst(VGPR453) src0(LITERAL_CONST) const: 0x3ecccccd V_MOV_B32 vDst(VGPR454) src0(LITERAL_CONST) const: 0x3ecccccd V_MOV_B32 vDst(VGPR424) src0(VGPR452) V_MOV_B32 vDst(VGPR425) src0(VGPR453) V_MOV_B32 vDst(VGPR426) src0(VGPR454) # 424: OpFunctionCall: FloatVector3: phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;(param410, param412, param414, param416, param418, param420, param422) S_ADD_U32 sDst(SGPR129) src0(LITERAL_CONST) src1(0) const: 0x198 # VGPR[408:410] S_ADD_U32 sDst(SGPR130) src0(LITERAL_CONST) src1(0) const: 0x19b # VGPR[411:413] S_ADD_U32 sDst(SGPR131) src0(LITERAL_CONST) src1(0) const: 0x19e # VGPR414 S_ADD_U32 sDst(SGPR132) src0(LITERAL_CONST) src1(0) const: 0x19f # VGPR[415:417] S_ADD_U32 sDst(SGPR133) src0(LITERAL_CONST) src1(0) const: 0x1a2 # VGPR[418:420] S_ADD_U32 sDst(SGPR134) src0(LITERAL_CONST) src1(0) const: 0x1a5 # VGPR[421:423] S_ADD_U32 sDst(SGPR135) src0(LITERAL_CONST) src1(0) const: 0x1a8 # VGPR[424:426] S_MOV_B64 sDst(SGPR160) src0(EXEC) S_MOV_B32 sDst(SGPR128) src0(LITERAL_CONST) const: 0x1c7 # VGPR[455:457] # Indirect branch to phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;: ??? S_GETPC_B64 sDst(SGPR126) src0(SGPR126) S_ADD_U32 sDst(SGPR126) src0(SGPR126) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR127) src0(SGPR127) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR126) src0(SGPR126) S_MOV_B64 sDst(EXEC) src0(SGPR160) # .lbl15 # 425: OpLoad: FloatVector3: tmp425 << color # 426: OpFAdd: FloatVector3: tmp426 << tmp425, phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3; V_ADD_F32 vDst(VGPR458) src0(VGPR405) src1(VGPR455) // VOP2 V_ADD_F32 vDst(VGPR459) src0(VGPR406) src1(VGPR456) // VOP2 V_ADD_F32 vDst(VGPR460) src0(VGPR407) src1(VGPR457) // VOP2 # OpStore: : tmp426 >> color V_MOV_B32 vDst(VGPR405) src0(VGPR458) V_MOV_B32 vDst(VGPR406) src0(VGPR459) V_MOV_B32 vDst(VGPR407) src0(VGPR460) # 427: OpLoad: FloatVector3: tmp427 << color # OpReturnValue: : << tmp427 S_MOV_B32 sDst(M0) src0(SGPR150) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR405) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR406) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR407) S_SETPC_B64 sDst(SGPR148) src0(SGPR148) # FloatMatrix3x3 viewMatrix(vf3;vf3;vf3;(FloatVector3* eye, FloatVector3* center, FloatVector3* up) Function: FloatMatrix3x3 viewMatrix(vf3;vf3;vf3;(, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.center, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.up) S_MOV_B64 sDst(SGPR168) src0(EXEC) # lb81 Label: lb81 # 431: OpLoad: FloatVector3: tmp431 << center S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR166) const: 0x0 V_MOVRELS_B32 vDst(VGPR461) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR462) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR463) src0(VGPR2) # 432: OpLoad: FloatVector3: tmp432 << eye S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR165) const: 0x0 V_MOVRELS_B32 vDst(VGPR464) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR465) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR466) src0(VGPR2) # 433: OpFSub: FloatVector3: tmp433 << tmp431, tmp432 V_SUB_F32 vDst(VGPR467) src0(VGPR461) src1(VGPR464) // VOP2 V_SUB_F32 vDst(VGPR468) src0(VGPR462) src1(VGPR465) // VOP2 V_SUB_F32 vDst(VGPR469) src0(VGPR463) src1(VGPR466) // VOP2 # 434: OpExtInst(Normalize): FloatVector3: tmp434 << tmp433 V_MUL_F32 vDst(VGPR470) src0(VGPR467) src1(VGPR467) // VOP2 V_MAC_F32 vDst(VGPR470) src0(VGPR468) src1(VGPR468) // VOP2 V_MAC_F32 vDst(VGPR470) src0(VGPR469) src1(VGPR469) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR470) src0(VGPR470) V_MUL_F32 vDst(VGPR471) src0(VGPR467) src1(VGPR470) // VOP2 V_MUL_F32 vDst(VGPR472) src0(VGPR468) src1(VGPR470) // VOP2 V_MUL_F32 vDst(VGPR473) src0(VGPR469) src1(VGPR470) // VOP2 # 437: OpLoad: FloatVector3: tmp437 << up S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR167) const: 0x0 V_MOVRELS_B32 vDst(VGPR474) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR475) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR476) src0(VGPR2) # 438: OpExtInst(Cross): FloatVector3: tmp438 << tmp434, tmp437 V_MUL_F32 vDst(VGPR477) src0(VGPR472) src1(VGPR476) // VOP2 V_MUL_F32 vDst(VGPR478) src0(VGPR473) src1(VGPR474) // VOP2 V_MUL_F32 vDst(VGPR479) src0(VGPR471) src1(VGPR475) // VOP2 V_MAC_F32 vDst(VGPR477) src0(VGPR473) src1(VGPR475) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a V_MAC_F32 vDst(VGPR478) src0(VGPR471) src1(VGPR476) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a V_MAC_F32 vDst(VGPR479) src0(VGPR472) src1(VGPR474) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a # 442: OpExtInst(Cross): FloatVector3: tmp442 << tmp438, tmp434 V_MUL_F32 vDst(VGPR480) src0(VGPR478) src1(VGPR473) // VOP2 V_MUL_F32 vDst(VGPR481) src0(VGPR479) src1(VGPR471) // VOP2 V_MUL_F32 vDst(VGPR482) src0(VGPR477) src1(VGPR472) // VOP2 V_MAC_F32 vDst(VGPR480) src0(VGPR479) src1(VGPR472) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a V_MAC_F32 vDst(VGPR481) src0(VGPR477) src1(VGPR473) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a V_MAC_F32 vDst(VGPR482) src0(VGPR478) src1(VGPR471) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a # 446: OpFNegate: FloatVector3: tmp446 << tmp434 V_MUL_F32 vDst(VGPR483) src0(M1_0_F) src1(VGPR471) // VOP2 V_MUL_F32 vDst(VGPR484) src0(M1_0_F) src1(VGPR472) // VOP2 V_MUL_F32 vDst(VGPR485) src0(M1_0_F) src1(VGPR473) // VOP2 # 447: OpCompositeExtract: Float: tmp447 << tmp438, 0 V_MOV_B32 vDst(VGPR486) src0(VGPR477) # 448: OpCompositeExtract: Float: tmp448 << tmp438, 1 V_MOV_B32 vDst(VGPR487) src0(VGPR478) # 449: OpCompositeExtract: Float: tmp449 << tmp438, 2 V_MOV_B32 vDst(VGPR488) src0(VGPR479) # 450: OpCompositeExtract: Float: tmp450 << tmp442, 0 V_MOV_B32 vDst(VGPR489) src0(VGPR480) # 451: OpCompositeExtract: Float: tmp451 << tmp442, 1 V_MOV_B32 vDst(VGPR490) src0(VGPR481) # 452: OpCompositeExtract: Float: tmp452 << tmp442, 2 V_MOV_B32 vDst(VGPR491) src0(VGPR482) # 453: OpCompositeExtract: Float: tmp453 << tmp446, 0 V_MOV_B32 vDst(VGPR492) src0(VGPR483) # 454: OpCompositeExtract: Float: tmp454 << tmp446, 1 V_MOV_B32 vDst(VGPR493) src0(VGPR484) # 455: OpCompositeExtract: Float: tmp455 << tmp446, 2 V_MOV_B32 vDst(VGPR494) src0(VGPR485) # 456: OpCompositeConstruct: FloatVector3: tmp456 << tmp447, tmp448, tmp449 V_MOV_B32 vDst(VGPR495) src0(VGPR486) V_MOV_B32 vDst(VGPR496) src0(VGPR487) V_MOV_B32 vDst(VGPR497) src0(VGPR488) # 457: OpCompositeConstruct: FloatVector3: tmp457 << tmp450, tmp451, tmp452 V_MOV_B32 vDst(VGPR498) src0(VGPR489) V_MOV_B32 vDst(VGPR499) src0(VGPR490) V_MOV_B32 vDst(VGPR500) src0(VGPR491) # 458: OpCompositeConstruct: FloatVector3: tmp458 << tmp453, tmp454, tmp455 V_MOV_B32 vDst(VGPR501) src0(VGPR492) V_MOV_B32 vDst(VGPR502) src0(VGPR493) V_MOV_B32 vDst(VGPR503) src0(VGPR494) # 459: OpCompositeConstruct: FloatMatrix3x3: tmp459 << tmp456, tmp457, tmp458 V_MOV_B32 vDst(VGPR504) src0(VGPR495) V_MOV_B32 vDst(VGPR505) src0(VGPR496) V_MOV_B32 vDst(VGPR506) src0(VGPR497) V_MOV_B32 vDst(VGPR507) src0(VGPR498) V_MOV_B32 vDst(VGPR508) src0(VGPR499) V_MOV_B32 vDst(VGPR509) src0(VGPR500) V_MOV_B32 vDst(VGPR510) src0(VGPR501) V_MOV_B32 vDst(VGPR511) src0(VGPR502) V_MOV_B32 vDst(VGPR512) src0(VGPR503) # OpReturnValue: : << tmp459 S_MOV_B32 sDst(M0) src0(SGPR164) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR504) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR505) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR506) V_MOVRELD_B32 vDst(VGPR3) src0(VGPR507) V_MOVRELD_B32 vDst(VGPR4) src0(VGPR508) V_MOVRELD_B32 vDst(VGPR5) src0(VGPR509) V_MOVRELD_B32 vDst(VGPR6) src0(VGPR510) V_MOVRELD_B32 vDst(VGPR7) src0(VGPR511) V_MOVRELD_B32 vDst(VGPR8) src0(VGPR512) S_SETPC_B64 sDst(SGPR162) src0(SGPR162) # Void mainImage(vf4;vf2;(FloatVector4* fragColor, FloatVector2* fragCoord) Function: Void mainImage(vf4;vf2;(, FloatVector2 main.fragCoord) S_MOV_B64 sDst(SGPR170) src0(EXEC) # lb88 Label: lb88 # OpStore: : const463 >> param466 V_MOV_B32 vDst(VGPR551) src0(LITERAL_CONST) const: 0x42340000 V_MOV_B32 vDst(VGPR513) src0(VGPR551) # 468: OpLoad: FloatVector3: tmp468 << iResolution S_LOAD_DWORDX2_IMM offset(0) sBase(SGPR[0:1]) sDst(SGPR[172:173]) S_WAITCNT 0 S_LOAD_DWORD_IMM offset(8) sBase(SGPR[0:1]) sDst(SGPR174) S_WAITCNT 0 # 469: OpVectorShuffle: FloatVector2: tmp469 << tmp468, tmp468, 0, 1 V_MOV_B32 vDst(VGPR552) src0(SGPR172) V_MOV_B32 vDst(VGPR553) src0(SGPR173) # OpStore: : tmp469 >> param467 V_MOV_B32 vDst(VGPR514) src0(VGPR552) V_MOV_B32 vDst(VGPR515) src0(VGPR553) # 471: OpLoad: FloatVector2: tmp471 << fragCoord S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR13) const: 0x0 V_MOVRELS_B32 vDst(VGPR554) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR555) src0(VGPR1) # OpStore: : tmp471 >> param470 V_MOV_B32 vDst(VGPR516) src0(VGPR554) V_MOV_B32 vDst(VGPR517) src0(VGPR555) # 472: OpFunctionCall: FloatVector3: rayDirection(f1;vf2;vf2;(param466, param467, param470) S_ADD_U32 sDst(SGPR103) src0(LITERAL_CONST) src1(0) const: 0x201 # VGPR513 S_ADD_U32 sDst(SGPR104) src0(LITERAL_CONST) src1(0) const: 0x202 # VGPR[514:515] S_ADD_U32 sDst(SGPR105) src0(LITERAL_CONST) src1(0) const: 0x204 # VGPR[516:517] S_MOV_B64 sDst(SGPR176) src0(EXEC) S_MOV_B32 sDst(SGPR102) src0(LITERAL_CONST) const: 0x22c # VGPR[556:558] # Indirect branch to rayDirection(f1;vf2;vf2;: ??? S_GETPC_B64 sDst(SGPR100) src0(SGPR100) S_ADD_U32 sDst(SGPR100) src0(SGPR100) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR101) src0(SGPR101) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR100) src0(SGPR100) S_MOV_B64 sDst(EXEC) src0(SGPR176) # .lbl16 # 479: OpLoad: Float: tmp479 << iTime S_LOAD_DWORD_IMM offset(12) sBase(SGPR[0:1]) sDst(SGPR178) S_WAITCNT 0 # 480: OpFMul: Float: tmp480 << const476, tmp479 V_MOV_B32 vDst(VGPR559) src0(LITERAL_CONST) const: 0x3e4ccccd V_MOV_B32 vDst(VGPR560) src0(SGPR178) V_MUL_F32 vDst(VGPR561) src0(VGPR559) src1(VGPR560) // VOP2 # 481: OpExtInst(Sin): Float: tmp481 << tmp480 V_MUL_F32 vDst(VGPR562) src0(LITERAL_CONST) src1(VGPR561) // VOP2 const: 0x3e22f983 V_FRACT_F32 vDst(VGPR562) src0(VGPR562) V_SIN_F32 vDst(VGPR562) src0(VGPR562) # 482: OpFMul: Float: tmp482 << const475, tmp481 V_MOV_B32 vDst(VGPR563) src0(LITERAL_CONST) const: 0x40a00000 V_MUL_F32 vDst(VGPR564) src0(VGPR563) src1(VGPR562) // VOP2 # 484: OpCompositeConstruct: FloatVector3: tmp484 << const474, tmp482, const483 V_MOV_B32 vDst(VGPR568) src0(LITERAL_CONST) const: 0x41000000 V_MOV_B32 vDst(VGPR565) src0(VGPR568) V_MOV_B32 vDst(VGPR566) src0(VGPR564) V_MOV_B32 vDst(VGPR569) src0(LITERAL_CONST) const: 0x40e00000 V_MOV_B32 vDst(VGPR567) src0(VGPR569) # OpStore: : tmp484 >> param488 V_MOV_B32 vDst(VGPR518) src0(VGPR565) V_MOV_B32 vDst(VGPR519) src0(VGPR566) V_MOV_B32 vDst(VGPR520) src0(VGPR567) # OpStore: : const373 >> param490 V_MOV_B32 vDst(VGPR570) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR571) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR572) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR521) src0(VGPR570) V_MOV_B32 vDst(VGPR522) src0(VGPR571) V_MOV_B32 vDst(VGPR523) src0(VGPR572) # OpStore: : const487 >> param491 V_MOV_B32 vDst(VGPR573) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR574) src0(1_0_F) V_MOV_B32 vDst(VGPR575) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR524) src0(VGPR573) V_MOV_B32 vDst(VGPR525) src0(VGPR574) V_MOV_B32 vDst(VGPR526) src0(VGPR575) # 492: OpFunctionCall: FloatMatrix3x3: viewMatrix(vf3;vf3;vf3;(param488, param490, param491) S_ADD_U32 sDst(SGPR165) src0(LITERAL_CONST) src1(0) const: 0x206 # VGPR[518:520] S_ADD_U32 sDst(SGPR166) src0(LITERAL_CONST) src1(0) const: 0x209 # VGPR[521:523] S_ADD_U32 sDst(SGPR167) src0(LITERAL_CONST) src1(0) const: 0x20c # VGPR[524:526] S_MOV_B64 sDst(SGPR180) src0(EXEC) S_MOV_B32 sDst(SGPR164) src0(LITERAL_CONST) const: 0x240 # VGPR[576:584] # Indirect branch to viewMatrix(vf3;vf3;vf3;: ??? S_GETPC_B64 sDst(SGPR162) src0(SGPR162) S_ADD_U32 sDst(SGPR162) src0(SGPR162) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR163) src0(SGPR163) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR162) src0(SGPR162) S_MOV_B64 sDst(EXEC) src0(SGPR180) # .lbl17 # 496: OpMatrixTimesVector: FloatVector3: tmp496 << viewMatrix(vf3;vf3;vf3;, rayDirection(f1;vf2;vf2; V_MUL_F32 vDst(VGPR585) src0(VGPR576) src1(VGPR556) // VOP2 V_MUL_F32 vDst(VGPR586) src0(VGPR577) src1(VGPR556) // VOP2 V_MUL_F32 vDst(VGPR587) src0(VGPR578) src1(VGPR556) // VOP2 V_MAC_F32 vDst(VGPR585) src0(VGPR579) src1(VGPR557) // VOP2 V_MAC_F32 vDst(VGPR586) src0(VGPR580) src1(VGPR557) // VOP2 V_MAC_F32 vDst(VGPR587) src0(VGPR581) src1(VGPR557) // VOP2 V_MAC_F32 vDst(VGPR585) src0(VGPR582) src1(VGPR558) // VOP2 V_MAC_F32 vDst(VGPR586) src0(VGPR583) src1(VGPR558) // VOP2 V_MAC_F32 vDst(VGPR587) src0(VGPR584) src1(VGPR558) // VOP2 # OpStore: : tmp484 >> param499 V_MOV_B32 vDst(VGPR527) src0(VGPR565) V_MOV_B32 vDst(VGPR528) src0(VGPR566) V_MOV_B32 vDst(VGPR529) src0(VGPR567) # OpStore: : tmp496 >> param501 V_MOV_B32 vDst(VGPR530) src0(VGPR585) V_MOV_B32 vDst(VGPR531) src0(VGPR586) V_MOV_B32 vDst(VGPR532) src0(VGPR587) # OpStore: : const96 >> param503 V_MOV_B32 vDst(VGPR588) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR533) src0(VGPR588) # OpStore: : const498 >> param504 V_MOV_B32 vDst(VGPR589) src0(LITERAL_CONST) const: 0x42c80000 V_MOV_B32 vDst(VGPR534) src0(VGPR589) # 505: OpFunctionCall: Float: shortestDistanceToSurface(vf3;vf3;f1;f1;(param499, param501, param503, param504) S_ADD_U32 sDst(SGPR75) src0(LITERAL_CONST) src1(0) const: 0x20f # VGPR[527:529] S_ADD_U32 sDst(SGPR76) src0(LITERAL_CONST) src1(0) const: 0x212 # VGPR[530:532] S_ADD_U32 sDst(SGPR77) src0(LITERAL_CONST) src1(0) const: 0x215 # VGPR533 S_ADD_U32 sDst(SGPR78) src0(LITERAL_CONST) src1(0) const: 0x216 # VGPR534 S_MOV_B64 sDst(SGPR182) src0(EXEC) S_MOV_B32 sDst(SGPR74) src0(LITERAL_CONST) const: 0x24e # VGPR590 # Indirect branch to shortestDistanceToSurface(vf3;vf3;f1;f1;: ??? S_GETPC_B64 sDst(SGPR72) src0(SGPR72) S_ADD_U32 sDst(SGPR72) src0(SGPR72) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR73) src0(SGPR73) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR72) src0(SGPR72) S_MOV_B64 sDst(EXEC) src0(SGPR182) # .lbl18 # 508: OpFOrdGreaterThan: Bool: tmp508 << shortestDistanceToSurface(vf3;vf3;f1;f1;, const507 V_MOV_B32 vDst(VGPR591) src0(LITERAL_CONST) const: 0x42c7fff3 V_CMP_GT_F32 dst(SGPR184) src0(VGPR590) src1(VGPR591) // VOP3a # OpSelectionMerge: (merge: lb510) # CF Block: Merge: lb510 S_MOV_B64 sDst(SGPR186) src0(EXEC) # OpBranchConditional: if(tmp508) then branch to lb509, else branch to lb510 # CF Block: Cond Branch: true: lb509, false: lb510 S_AND_B64 sDst(EXEC) src0(SGPR184) src1(EXEC) S_CBRANCH_EXECZ ??? lb510 S_BRANCH ??? lb509 # lb509 Label: lb509 # OpStore: : const511 >> fragColor S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR12) const: 0x0 V_MOV_B32 vDst(VGPR592) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR593) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR594) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR595) src0(LITERAL_CONST) const: 0x00000000 V_MOVRELD_B32 vDst(VGPR0) src0(VGPR592) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR593) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR594) V_MOVRELD_B32 vDst(VGPR3) src0(VGPR595) # OpReturn: S_SETPC_B64 sDst(SGPR10) src0(SGPR10) # lb510 Label: lb510 # 517: OpVectorTimesScalar: FloatVector3: tmp517 << tmp496, shortestDistanceToSurface(vf3;vf3;f1;f1; V_MUL_F32 vDst(VGPR596) src0(VGPR590) src1(VGPR585) // VOP2 V_MUL_F32 vDst(VGPR597) src0(VGPR590) src1(VGPR586) // VOP2 V_MUL_F32 vDst(VGPR598) src0(VGPR590) src1(VGPR587) // VOP2 # 518: OpFAdd: FloatVector3: tmp518 << tmp484, tmp517 V_ADD_F32 vDst(VGPR599) src0(VGPR565) src1(VGPR596) // VOP2 V_ADD_F32 vDst(VGPR600) src0(VGPR566) src1(VGPR597) // VOP2 V_ADD_F32 vDst(VGPR601) src0(VGPR567) src1(VGPR598) // VOP2 # OpStore: : const400 >> param527 V_MOV_B32 vDst(VGPR602) src0(0_5_F) V_MOV_B32 vDst(VGPR603) src0(0_5_F) V_MOV_B32 vDst(VGPR604) src0(0_5_F) V_MOV_B32 vDst(VGPR535) src0(VGPR602) V_MOV_B32 vDst(VGPR536) src0(VGPR603) V_MOV_B32 vDst(VGPR537) src0(VGPR604) # OpStore: : const400 >> param529 V_MOV_B32 vDst(VGPR605) src0(0_5_F) V_MOV_B32 vDst(VGPR606) src0(0_5_F) V_MOV_B32 vDst(VGPR607) src0(0_5_F) V_MOV_B32 vDst(VGPR538) src0(VGPR605) V_MOV_B32 vDst(VGPR539) src0(VGPR606) V_MOV_B32 vDst(VGPR540) src0(VGPR607) # OpStore: : const523 >> param531 V_MOV_B32 vDst(VGPR608) src0(1_0_F) V_MOV_B32 vDst(VGPR609) src0(1_0_F) V_MOV_B32 vDst(VGPR610) src0(1_0_F) V_MOV_B32 vDst(VGPR541) src0(VGPR608) V_MOV_B32 vDst(VGPR542) src0(VGPR609) V_MOV_B32 vDst(VGPR543) src0(VGPR610) # OpStore: : const525 >> param533 V_MOV_B32 vDst(VGPR611) src0(LITERAL_CONST) const: 0x41200000 V_MOV_B32 vDst(VGPR544) src0(VGPR611) # OpStore: : tmp518 >> param535 V_MOV_B32 vDst(VGPR545) src0(VGPR599) V_MOV_B32 vDst(VGPR546) src0(VGPR600) V_MOV_B32 vDst(VGPR547) src0(VGPR601) # OpStore: : tmp484 >> param537 V_MOV_B32 vDst(VGPR548) src0(VGPR565) V_MOV_B32 vDst(VGPR549) src0(VGPR566) V_MOV_B32 vDst(VGPR550) src0(VGPR567) # 539: OpFunctionCall: FloatVector3: phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;(param527, param529, param531, param533, param535, param537) S_ADD_U32 sDst(SGPR151) src0(LITERAL_CONST) src1(0) const: 0x217 # VGPR[535:537] S_ADD_U32 sDst(SGPR152) src0(LITERAL_CONST) src1(0) const: 0x21a # VGPR[538:540] S_ADD_U32 sDst(SGPR153) src0(LITERAL_CONST) src1(0) const: 0x21d # VGPR[541:543] S_ADD_U32 sDst(SGPR154) src0(LITERAL_CONST) src1(0) const: 0x220 # VGPR544 S_ADD_U32 sDst(SGPR155) src0(LITERAL_CONST) src1(0) const: 0x221 # VGPR[545:547] S_ADD_U32 sDst(SGPR156) src0(LITERAL_CONST) src1(0) const: 0x224 # VGPR[548:550] S_MOV_B64 sDst(SGPR188) src0(EXEC) S_MOV_B32 sDst(SGPR150) src0(LITERAL_CONST) const: 0x264 # VGPR[612:614] # Indirect branch to phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;: ??? S_GETPC_B64 sDst(SGPR148) src0(SGPR148) S_ADD_U32 sDst(SGPR148) src0(SGPR148) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR149) src0(SGPR149) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR148) src0(SGPR148) S_MOV_B64 sDst(EXEC) src0(SGPR188) # .lbl19 # 541: OpCompositeExtract: Float: tmp541 << phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;, 0 V_MOV_B32 vDst(VGPR615) src0(VGPR612) # 542: OpCompositeExtract: Float: tmp542 << phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;, 1 V_MOV_B32 vDst(VGPR616) src0(VGPR613) # 543: OpCompositeExtract: Float: tmp543 << phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;, 2 V_MOV_B32 vDst(VGPR617) src0(VGPR614) # 544: OpCompositeConstruct: FloatVector4: tmp544 << tmp541, tmp542, tmp543, const95 V_MOV_B32 vDst(VGPR618) src0(VGPR615) V_MOV_B32 vDst(VGPR619) src0(VGPR616) V_MOV_B32 vDst(VGPR620) src0(VGPR617) V_MOV_B32 vDst(VGPR621) src0(1_0_F) # OpStore: : tmp544 >> fragColor S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR12) const: 0x0 V_MOVRELD_B32 vDst(VGPR0) src0(VGPR618) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR619) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR620) V_MOVRELD_B32 vDst(VGPR3) src0(VGPR621) # OpReturn: S_SETPC_B64 sDst(SGPR10) src0(SGPR10) Performing GPU-specific optimization... Pre register allocation control-flow processing... Intermediate disassembly (pre register allocation): Program Type: Fragment Special Input Variables: offset: unset, size: 16, FloatVector4 gl_FragCoord BuiltIn(FragCoord) Textures: offset: 0, size: 4, Float iChannel0 offset: 1, size: 4, Float iChannel1 offset: 2, size: 4, Float iChannel2 offset: 3, size: 4, Float iChannel3 Output Variables: offset: 0, size: 16, FloatVector4 finalColor Uniform Constants: offset: 0, size: 12, FloatVector3 iResolution offset: 12, size: 4, Float iTime offset: 16, size: 16, FloatVector4 iMouse offset: 32, size: 16, FloatVector4 iDate offset: 48, size: 4, Float iFrame offset: 52, size: 48, FloatVector3 iChannelResolution[4] Constants: Float const95: 1 Float const96: 0 FloatVector3 const97: {1, 0, 0} Float const135: 2 UInt32 const141: 0 UInt32 const144: 1 UInt32 const147: 2 Float const177: 1.8 FloatVector3 const178: {1.8, 1.8, 1.8} Float const183: 1.1 Float const189: 1.2 Int32 const210: 0 Int32 const217: 255 Float const229: 0.0001 Int32 const246: 1 FloatVector3 const373: {0, 0, 0} Float const399: 0.5 FloatVector3 const400: {0.5, 0.5, 0.5} Float const404: 6 Float const405: 4 FloatVector3 const406: {6, 2, 4} Float const408: 0.4 FloatVector3 const409: {0.4, 0.4, 0.4} Float const463: 45 Float const474: 8 Float const475: 5 Float const476: 0.2 Float const483: 7 FloatVector3 const487: {0, 1, 0} Float const498: 100 Float const507: 99.9999 FloatVector4 const511: {0, 0, 0, 0} FloatVector3 const523: {1, 1, 1} Float const525: 10 UInt32 const561: 4 Function Local Variables: offset: unset, size: 16, FloatVector4 main.param548 offset: unset, size: 8, FloatVector2 main.param549 offset: unset, size: 16, FloatVector4 main.fragColor offset: unset, size: 8, FloatVector2 main.fragCoord offset: unset, size: 4, Float main.theta offset: unset, size: 4, Float rotateX(f1;.distA offset: unset, size: 4, Float rotateX(f1;.distB offset: unset, size: 4, Float intersectSDF(f1;f1;.distA offset: unset, size: 4, Float intersectSDF(f1;f1;.distB offset: unset, size: 12, FloatVector3 differenceSDF(f1;f1;.p offset: unset, size: 12, FloatVector3 differenceSDF(f1;f1;.size offset: unset, size: 12, FloatVector3 boxSDF(vf3;vf3;.p offset: unset, size: 4, Float boxSDF(vf3;vf3;.r offset: unset, size: 12, FloatVector3 sphereSDF(vf3;f1;.samplePoint offset: unset, size: 4, Float sceneSDF(vf3;.param174 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.param179 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.param180 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.param184 offset: unset, size: 4, Float sceneSDF(vf3;.param186 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.param190 offset: unset, size: 4, Float sceneSDF(vf3;.param192 offset: unset, size: 4, Float sceneSDF(vf3;.param194 offset: unset, size: 4, Float sceneSDF(vf3;.param196 offset: unset, size: 4, Float sceneSDF(vf3;.param199 offset: unset, size: 4, Float sceneSDF(vf3;.param200 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.eye offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.marchingDirection offset: unset, size: 4, Float sceneSDF(vf3;.start offset: unset, size: 4, Float sceneSDF(vf3;.end offset: unset, size: 4, Float shortestDistanceToSurface(vf3;vf3;f1;f1;.depth offset: unset, size: 4, Int32 shortestDistanceToSurface(vf3;vf3;f1;f1;.i offset: unset, size: 12, FloatVector3 shortestDistanceToSurface(vf3;vf3;f1;f1;.param226 offset: unset, size: 4, Float shortestDistanceToSurface(vf3;vf3;f1;f1;.fieldOfView offset: unset, size: 8, FloatVector2 shortestDistanceToSurface(vf3;vf3;f1;f1;.size offset: unset, size: 8, FloatVector2 shortestDistanceToSurface(vf3;vf3;f1;f1;.fragCoord offset: unset, size: 12, FloatVector3 rayDirection(f1;vf2;vf2;.p offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param282 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param292 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param303 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param313 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param324 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param334 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.k_d offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.k_s offset: unset, size: 4, Float estimateNormal(vf3;.alpha offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.p offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.eye offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.lightPos offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.lightIntensity offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.param342 offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_a offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_d offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_s offset: unset, size: 4, Float phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.alpha offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.p offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.eye offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.color offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param410 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param412 offset: unset, size: 4, Float phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param414 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param416 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param418 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param420 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param422 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.eye offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.center offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.up offset: unset, size: 4, Float mainImage(vf4;vf2;.param466 offset: unset, size: 8, FloatVector2 mainImage(vf4;vf2;.param467 offset: unset, size: 8, FloatVector2 mainImage(vf4;vf2;.param470 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param488 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param490 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param491 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param499 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param501 offset: unset, size: 4, Float mainImage(vf4;vf2;.param503 offset: unset, size: 4, Float mainImage(vf4;vf2;.param504 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param527 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param529 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param531 offset: unset, size: 4, Float mainImage(vf4;vf2;.param533 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param535 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param537 Instructions: V_SUB_F32 vDst(VGPR14) src0(SGPR2) src1(VGPR14) // VOP2 # Void main() Function: Void main() # lb5 Label: lb5 # 550: OpLoad: FloatVector4: tmp550 << gl_FragCoord V_MOV_B32 vDst(VGPR24) src0(VGPR13) V_MOV_B32 vDst(VGPR25) src0(VGPR14) V_MOV_B32 vDst(VGPR26) src0(VGPR15) V_MOV_B32 vDst(VGPR27) src0(VGPR16) # 551: OpVectorShuffle: FloatVector2: tmp551 << tmp550, tmp550, 0, 1 V_MOV_B32 vDst(VGPR28) src0(VGPR24) V_MOV_B32 vDst(VGPR29) src0(VGPR25) # OpStore: : tmp551 >> param549 V_MOV_B32 vDst(VGPR22) src0(VGPR28) V_MOV_B32 vDst(VGPR23) src0(VGPR29) # 552: OpFunctionCall: Void: mainImage(vf4;vf2;(param548, param549) S_ADD_U32 sDst(SGPR12) src0(LITERAL_CONST) src1(0) const: 0x12 # VGPR[18:21] S_ADD_U32 sDst(SGPR13) src0(LITERAL_CONST) src1(0) const: 0x16 # VGPR[22:23] S_MOV_B64 sDst(SGPR14) src0(EXEC) # Indirect branch to mainImage(vf4;vf2;: ??? S_GETPC_B64 sDst(SGPR10) src0(SGPR10) S_ADD_U32 sDst(SGPR10) src0(SGPR10) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR11) src0(SGPR11) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR10) src0(SGPR10) S_MOV_B64 sDst(EXEC) src0(SGPR14) # .lbl0 # 553: OpLoad: FloatVector4: tmp553 << param548 # OpStore: : tmp553 >> finalColor V_MOV_B32 vDst(VGPR30) src0(VGPR18) V_MOV_B32 vDst(VGPR31) src0(VGPR19) V_MOV_B32 vDst(VGPR32) src0(VGPR20) V_MOV_B32 vDst(VGPR33) src0(VGPR21) # OpReturn: V_CVT_PKRTZ_F16_F32 vDst(VGPR30) src0(VGPR30) src1(VGPR31) // VOP2 V_CVT_PKRTZ_F16_F32 vDst(VGPR31) src0(VGPR32) src1(VGPR33) // VOP2 EXP en(0xf) tgt(0) compr(1) done(1) vm(1) vsrc0(VGPR30) vsrc1(VGPR31) vsrc2(VGPR32) vsrc3(VGPR33) S_WAITCNT 0 S_ENDPGM 0 # FloatMatrix3x3 rotateX(f1;(Float* theta) Function: FloatMatrix3x3 rotateX(f1;() S_MOV_B64 sDst(SGPR20) src0(EXEC) # lb13 Label: lb13 # 90: OpLoad: Float: tmp90 << theta S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR19) const: 0x0 V_MOVRELS_B32 vDst(VGPR34) src0(VGPR0) # 91: OpExtInst(Cos): Float: tmp91 << tmp90 V_MUL_F32 vDst(VGPR35) src0(LITERAL_CONST) src1(VGPR34) // VOP2 const: 0x3e22f983 V_FRACT_F32 vDst(VGPR35) src0(VGPR35) V_COS_F32 vDst(VGPR35) src0(VGPR35) # 93: OpLoad: Float: tmp93 << theta S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR19) const: 0x0 V_MOVRELS_B32 vDst(VGPR36) src0(VGPR0) # 94: OpExtInst(Sin): Float: tmp94 << tmp93 V_MUL_F32 vDst(VGPR37) src0(LITERAL_CONST) src1(VGPR36) // VOP2 const: 0x3e22f983 V_FRACT_F32 vDst(VGPR37) src0(VGPR37) V_SIN_F32 vDst(VGPR37) src0(VGPR37) # 100: OpFNegate: Float: tmp100 << tmp94 V_MUL_F32 vDst(VGPR38) src0(M1_0_F) src1(VGPR37) // VOP2 # 101: OpCompositeConstruct: FloatVector3: tmp101 << const96, tmp91, tmp100 V_MOV_B32 vDst(VGPR42) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR39) src0(VGPR42) V_MOV_B32 vDst(VGPR40) src0(VGPR35) V_MOV_B32 vDst(VGPR41) src0(VGPR38) # 104: OpCompositeConstruct: FloatVector3: tmp104 << const96, tmp94, tmp91 V_MOV_B32 vDst(VGPR46) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR43) src0(VGPR46) V_MOV_B32 vDst(VGPR44) src0(VGPR37) V_MOV_B32 vDst(VGPR45) src0(VGPR35) # 105: OpCompositeExtract: Float: tmp105 << const97, 0 V_MOV_B32 vDst(VGPR47) src0(1_0_F) # 106: OpCompositeExtract: Float: tmp106 << const97, 1 V_MOV_B32 vDst(VGPR49) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR48) src0(VGPR50) # 107: OpCompositeExtract: Float: tmp107 << const97, 2 V_MOV_B32 vDst(VGPR51) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR50) src0(VGPR53) # 108: OpCompositeExtract: Float: tmp108 << tmp101, 0 V_MOV_B32 vDst(VGPR52) src0(VGPR39) # 109: OpCompositeExtract: Float: tmp109 << tmp101, 1 V_MOV_B32 vDst(VGPR53) src0(VGPR40) # 110: OpCompositeExtract: Float: tmp110 << tmp101, 2 V_MOV_B32 vDst(VGPR54) src0(VGPR41) # 111: OpCompositeExtract: Float: tmp111 << tmp104, 0 V_MOV_B32 vDst(VGPR55) src0(VGPR43) # 112: OpCompositeExtract: Float: tmp112 << tmp104, 1 V_MOV_B32 vDst(VGPR56) src0(VGPR44) # 113: OpCompositeExtract: Float: tmp113 << tmp104, 2 V_MOV_B32 vDst(VGPR57) src0(VGPR45) # 114: OpCompositeConstruct: FloatVector3: tmp114 << tmp105, tmp106, tmp107 V_MOV_B32 vDst(VGPR58) src0(VGPR47) V_MOV_B32 vDst(VGPR59) src0(VGPR48) V_MOV_B32 vDst(VGPR60) src0(VGPR50) # 115: OpCompositeConstruct: FloatVector3: tmp115 << tmp108, tmp109, tmp110 V_MOV_B32 vDst(VGPR61) src0(VGPR52) V_MOV_B32 vDst(VGPR62) src0(VGPR53) V_MOV_B32 vDst(VGPR63) src0(VGPR54) # 116: OpCompositeConstruct: FloatVector3: tmp116 << tmp111, tmp112, tmp113 V_MOV_B32 vDst(VGPR64) src0(VGPR55) V_MOV_B32 vDst(VGPR65) src0(VGPR56) V_MOV_B32 vDst(VGPR66) src0(VGPR57) # 117: OpCompositeConstruct: FloatMatrix3x3: tmp117 << tmp114, tmp115, tmp116 V_MOV_B32 vDst(VGPR67) src0(VGPR58) V_MOV_B32 vDst(VGPR68) src0(VGPR59) V_MOV_B32 vDst(VGPR69) src0(VGPR60) V_MOV_B32 vDst(VGPR70) src0(VGPR61) V_MOV_B32 vDst(VGPR71) src0(VGPR62) V_MOV_B32 vDst(VGPR72) src0(VGPR63) V_MOV_B32 vDst(VGPR73) src0(VGPR64) V_MOV_B32 vDst(VGPR74) src0(VGPR65) V_MOV_B32 vDst(VGPR75) src0(VGPR66) # OpReturnValue: : << tmp117 S_MOV_B32 sDst(M0) src0(SGPR18) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR67) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR68) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR69) V_MOVRELD_B32 vDst(VGPR3) src0(VGPR70) V_MOVRELD_B32 vDst(VGPR4) src0(VGPR71) V_MOVRELD_B32 vDst(VGPR5) src0(VGPR72) V_MOVRELD_B32 vDst(VGPR6) src0(VGPR73) V_MOVRELD_B32 vDst(VGPR7) src0(VGPR74) V_MOVRELD_B32 vDst(VGPR8) src0(VGPR75) S_SETPC_B64 sDst(SGPR16) src0(SGPR16) # Float intersectSDF(f1;f1;(Float* distA, Float* distB) Function: Float intersectSDF(f1;f1;(, Float rotateX(f1;.distB) S_MOV_B64 sDst(SGPR28) src0(EXEC) # lb18 Label: lb18 # 120: OpLoad: Float: tmp120 << distA S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR25) const: 0x0 V_MOVRELS_B32 vDst(VGPR76) src0(VGPR0) # 121: OpLoad: Float: tmp121 << distB S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR26) const: 0x0 V_MOVRELS_B32 vDst(VGPR77) src0(VGPR0) # 122: OpExtInst(FMax): Float: tmp122 << tmp120, tmp121 V_MAX_F32 vDst(VGPR78) src0(VGPR76) src1(VGPR77) // VOP2 # OpReturnValue: : << tmp122 S_MOV_B32 sDst(M0) src0(SGPR24) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR78) S_SETPC_B64 sDst(SGPR22) src0(SGPR22) # Float differenceSDF(f1;f1;(Float* distA, Float* distB) Function: Float differenceSDF(f1;f1;(, Float intersectSDF(f1;f1;.distB) S_MOV_B64 sDst(SGPR36) src0(EXEC) # lb22 Label: lb22 # 125: OpLoad: Float: tmp125 << distA S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR33) const: 0x0 V_MOVRELS_B32 vDst(VGPR79) src0(VGPR0) # 126: OpLoad: Float: tmp126 << distB S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR34) const: 0x0 V_MOVRELS_B32 vDst(VGPR80) src0(VGPR0) # 127: OpFNegate: Float: tmp127 << tmp126 V_MUL_F32 vDst(VGPR81) src0(M1_0_F) src1(VGPR80) // VOP2 # 128: OpExtInst(FMax): Float: tmp128 << tmp125, tmp127 V_MAX_F32 vDst(VGPR82) src0(VGPR79) src1(VGPR81) // VOP2 # OpReturnValue: : << tmp128 S_MOV_B32 sDst(M0) src0(SGPR32) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR82) S_SETPC_B64 sDst(SGPR30) src0(SGPR30) # Float boxSDF(vf3;vf3;(FloatVector3* p, FloatVector3* size) Function: Float boxSDF(vf3;vf3;(, FloatVector3 differenceSDF(f1;f1;.size) S_MOV_B64 sDst(SGPR44) src0(EXEC) # lb28 Label: lb28 # 132: OpLoad: FloatVector3: tmp132 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR41) const: 0x0 V_MOVRELS_B32 vDst(VGPR83) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR84) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR85) src0(VGPR2) # 133: OpExtInst(FAbs): FloatVector3: tmp133 << tmp132 V_ADD_F32 vDst(VGPR86) src0(VGPR83) src1(0) src2(N/A) abs(1) clamp(0) omod(0) neg(0) // VOP3a V_ADD_F32 vDst(VGPR87) src0(VGPR84) src1(0) src2(N/A) abs(1) clamp(0) omod(0) neg(0) // VOP3a V_ADD_F32 vDst(VGPR88) src0(VGPR85) src1(0) src2(N/A) abs(1) clamp(0) omod(0) neg(0) // VOP3a # 134: OpLoad: FloatVector3: tmp134 << size S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR42) const: 0x0 V_MOVRELS_B32 vDst(VGPR89) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR90) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR91) src0(VGPR2) # 136: OpCompositeConstruct: FloatVector3: tmp136 << const135, const135, const135 V_MOV_B32 vDst(VGPR92) src0(2_0_F) V_MOV_B32 vDst(VGPR93) src0(2_0_F) V_MOV_B32 vDst(VGPR94) src0(2_0_F) # 137: OpFDiv: FloatVector3: tmp137 << tmp134, tmp136 V_RCP_F32 vDst(VGPR95) src0(VGPR92) V_RCP_F32 vDst(VGPR96) src0(VGPR93) V_RCP_F32 vDst(VGPR97) src0(VGPR94) V_MUL_F32 vDst(VGPR95) src0(VGPR89) src1(VGPR95) // VOP2 V_MUL_F32 vDst(VGPR96) src0(VGPR90) src1(VGPR96) // VOP2 V_MUL_F32 vDst(VGPR97) src0(VGPR91) src1(VGPR97) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR95) src0(VGPR95) src1(VGPR92) src2(VGPR89) abs(0) clamp(0) omod(0) neg(0) // VOP3a V_DIV_FIXUP_F32 vDst(VGPR96) src0(VGPR96) src1(VGPR93) src2(VGPR90) abs(0) clamp(0) omod(0) neg(0) // VOP3a V_DIV_FIXUP_F32 vDst(VGPR97) src0(VGPR97) src1(VGPR94) src2(VGPR91) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 138: OpFSub: FloatVector3: tmp138 << tmp133, tmp137 V_SUB_F32 vDst(VGPR98) src0(VGPR86) src1(VGPR95) // VOP2 V_SUB_F32 vDst(VGPR99) src0(VGPR87) src1(VGPR96) // VOP2 V_SUB_F32 vDst(VGPR100) src0(VGPR88) src1(VGPR97) // VOP2 # 142: OpAccessChain: Float*: d[0] # 143: OpCompositeExtract: Float: tmp143 << tmp138, 0 V_MOV_B32 vDst(VGPR101) src0(VGPR98) # 145: OpAccessChain: Float*: d[1] # 146: OpCompositeExtract: Float: tmp146 << tmp138, 1 V_MOV_B32 vDst(VGPR102) src0(VGPR99) # 148: OpAccessChain: Float*: d[2] # 149: OpCompositeExtract: Float: tmp149 << tmp138, 2 V_MOV_B32 vDst(VGPR103) src0(VGPR100) # 150: OpExtInst(FMax): Float: tmp150 << tmp146, tmp149 V_MAX_F32 vDst(VGPR104) src0(VGPR102) src1(VGPR103) // VOP2 # 151: OpExtInst(FMax): Float: tmp151 << tmp143, tmp150 V_MAX_F32 vDst(VGPR105) src0(VGPR101) src1(VGPR104) // VOP2 # 152: OpExtInst(FMin): Float: tmp152 << tmp151, const96 V_MOV_B32 vDst(VGPR106) src0(LITERAL_CONST) const: 0x00000000 V_MIN_F32 vDst(VGPR107) src0(VGPR105) src1(VGPR106) // VOP2 # 155: OpCompositeConstruct: FloatVector3: tmp155 << const96, const96, const96 V_MOV_B32 vDst(VGPR111) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR108) src0(VGPR111) V_MOV_B32 vDst(VGPR112) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR109) src0(VGPR112) V_MOV_B32 vDst(VGPR113) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR110) src0(VGPR113) # 156: OpExtInst(FMax): FloatVector3: tmp156 << tmp138, tmp155 V_MAX_F32 vDst(VGPR114) src0(VGPR98) src1(VGPR108) // VOP2 V_MAX_F32 vDst(VGPR115) src0(VGPR99) src1(VGPR109) // VOP2 V_MAX_F32 vDst(VGPR116) src0(VGPR100) src1(VGPR110) // VOP2 # 157: OpExtInst(Length): Float: tmp157 << tmp156 V_MUL_F32 vDst(VGPR117) src0(VGPR114) src1(VGPR114) // VOP2 V_MAC_F32 vDst(VGPR117) src0(VGPR115) src1(VGPR115) // VOP2 V_MAC_F32 vDst(VGPR117) src0(VGPR116) src1(VGPR116) // VOP2 V_SQRT_F32 vDst(VGPR117) src0(VGPR117) # 160: OpFAdd: Float: tmp160 << tmp152, tmp157 V_ADD_F32 vDst(VGPR118) src0(VGPR107) src1(VGPR117) // VOP2 # OpReturnValue: : << tmp160 S_MOV_B32 sDst(M0) src0(SGPR40) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR118) S_SETPC_B64 sDst(SGPR38) src0(SGPR38) # Float sphereSDF(vf3;f1;(FloatVector3* p, Float* r) Function: Float sphereSDF(vf3;f1;(, Float boxSDF(vf3;vf3;.r) S_MOV_B64 sDst(SGPR52) src0(EXEC) # lb33 Label: lb33 # 163: OpLoad: FloatVector3: tmp163 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR49) const: 0x0 V_MOVRELS_B32 vDst(VGPR119) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR120) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR121) src0(VGPR2) # 164: OpExtInst(Length): Float: tmp164 << tmp163 V_MUL_F32 vDst(VGPR122) src0(VGPR119) src1(VGPR119) // VOP2 V_MAC_F32 vDst(VGPR122) src0(VGPR120) src1(VGPR120) // VOP2 V_MAC_F32 vDst(VGPR122) src0(VGPR121) src1(VGPR121) // VOP2 V_SQRT_F32 vDst(VGPR122) src0(VGPR122) # 165: OpLoad: Float: tmp165 << r S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR50) const: 0x0 V_MOVRELS_B32 vDst(VGPR123) src0(VGPR0) # 166: OpFSub: Float: tmp166 << tmp164, tmp165 V_SUB_F32 vDst(VGPR124) src0(VGPR122) src1(VGPR123) // VOP2 # OpReturnValue: : << tmp166 S_MOV_B32 sDst(M0) src0(SGPR48) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR124) S_SETPC_B64 sDst(SGPR46) src0(SGPR46) # Float sceneSDF(vf3;(FloatVector3* samplePoint) Function: Float sceneSDF(vf3;() S_MOV_B64 sDst(SGPR58) src0(EXEC) # lb37 Label: lb37 # 170: OpLoad: FloatVector3: tmp170 << samplePoint S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR57) const: 0x0 V_MOVRELS_B32 vDst(VGPR144) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR145) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR146) src0(VGPR2) # 171: OpAccessChain: Float*: samplePoint[0] # 172: OpLoad: Float: tmp172 << samplePoint[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR57) const: 0x0 V_MOVRELS_B32 vDst(VGPR147) src0(VGPR0) # 173: OpFMul: Float: tmp173 << tmp172, const95 V_MOV_B32 vDst(VGPR148) src0(1_0_F) V_MUL_F32 vDst(VGPR149) src0(VGPR147) src1(VGPR148) // VOP2 # OpStore: : tmp173 >> param174 V_MOV_B32 vDst(VGPR125) src0(VGPR149) # 175: OpFunctionCall: FloatMatrix3x3: rotateX(f1;(param174) S_ADD_U32 sDst(SGPR19) src0(LITERAL_CONST) src1(0) const: 0x7d # VGPR125 S_MOV_B64 sDst(SGPR60) src0(EXEC) S_MOV_B32 sDst(SGPR18) src0(LITERAL_CONST) const: 0x96 # VGPR[150:158] # Indirect branch to rotateX(f1;: ??? S_GETPC_B64 sDst(SGPR16) src0(SGPR16) S_ADD_U32 sDst(SGPR16) src0(SGPR16) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR17) src0(SGPR17) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR16) src0(SGPR16) S_MOV_B64 sDst(EXEC) src0(SGPR60) # .lbl1 # 176: OpVectorTimesMatrix: FloatVector3: tmp176 << tmp170, rotateX(f1; V_MUL_F32 vDst(VGPR159) src0(VGPR144) src1(VGPR150) // VOP2 V_MUL_F32 vDst(VGPR160) src0(VGPR144) src1(VGPR153) // VOP2 V_MUL_F32 vDst(VGPR161) src0(VGPR144) src1(VGPR156) // VOP2 V_MAC_F32 vDst(VGPR159) src0(VGPR145) src1(VGPR151) // VOP2 V_MAC_F32 vDst(VGPR160) src0(VGPR145) src1(VGPR154) // VOP2 V_MAC_F32 vDst(VGPR161) src0(VGPR145) src1(VGPR157) // VOP2 V_MAC_F32 vDst(VGPR159) src0(VGPR146) src1(VGPR152) // VOP2 V_MAC_F32 vDst(VGPR160) src0(VGPR146) src1(VGPR155) // VOP2 V_MAC_F32 vDst(VGPR161) src0(VGPR146) src1(VGPR158) // VOP2 # OpStore: : tmp176 >> param179 V_MOV_B32 vDst(VGPR126) src0(VGPR159) V_MOV_B32 vDst(VGPR127) src0(VGPR160) V_MOV_B32 vDst(VGPR128) src0(VGPR161) # OpStore: : const178 >> param180 V_MOV_B32 vDst(VGPR162) src0(LITERAL_CONST) const: 0x3fe66666 V_MOV_B32 vDst(VGPR163) src0(LITERAL_CONST) const: 0x3fe66666 V_MOV_B32 vDst(VGPR164) src0(LITERAL_CONST) const: 0x3fe66666 V_MOV_B32 vDst(VGPR129) src0(VGPR162) V_MOV_B32 vDst(VGPR130) src0(VGPR163) V_MOV_B32 vDst(VGPR131) src0(VGPR164) # 181: OpFunctionCall: Float: boxSDF(vf3;vf3;(param179, param180) S_ADD_U32 sDst(SGPR41) src0(LITERAL_CONST) src1(0) const: 0x7e # VGPR[126:128] S_ADD_U32 sDst(SGPR42) src0(LITERAL_CONST) src1(0) const: 0x81 # VGPR[129:131] S_MOV_B64 sDst(SGPR62) src0(EXEC) S_MOV_B32 sDst(SGPR40) src0(LITERAL_CONST) const: 0xa5 # VGPR165 # Indirect branch to boxSDF(vf3;vf3;: ??? S_GETPC_B64 sDst(SGPR38) src0(SGPR38) S_ADD_U32 sDst(SGPR38) src0(SGPR38) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR39) src0(SGPR39) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR38) src0(SGPR38) S_MOV_B64 sDst(EXEC) src0(SGPR62) # .lbl2 # 185: OpLoad: FloatVector3: tmp185 << samplePoint S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR57) const: 0x0 V_MOVRELS_B32 vDst(VGPR166) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR167) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR168) src0(VGPR2) # OpStore: : tmp185 >> param184 V_MOV_B32 vDst(VGPR132) src0(VGPR166) V_MOV_B32 vDst(VGPR133) src0(VGPR167) V_MOV_B32 vDst(VGPR134) src0(VGPR168) # OpStore: : const183 >> param186 V_MOV_B32 vDst(VGPR169) src0(LITERAL_CONST) const: 0x3f8ccccd V_MOV_B32 vDst(VGPR135) src0(VGPR169) # 187: OpFunctionCall: Float: sphereSDF(vf3;f1;(param184, param186) S_ADD_U32 sDst(SGPR49) src0(LITERAL_CONST) src1(0) const: 0x84 # VGPR[132:134] S_ADD_U32 sDst(SGPR50) src0(LITERAL_CONST) src1(0) const: 0x87 # VGPR135 S_MOV_B64 sDst(SGPR64) src0(EXEC) S_MOV_B32 sDst(SGPR48) src0(LITERAL_CONST) const: 0xaa # VGPR170 # Indirect branch to sphereSDF(vf3;f1;: ??? S_GETPC_B64 sDst(SGPR46) src0(SGPR46) S_ADD_U32 sDst(SGPR46) src0(SGPR46) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR47) src0(SGPR47) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR46) src0(SGPR46) S_MOV_B64 sDst(EXEC) src0(SGPR64) # .lbl3 # 191: OpLoad: FloatVector3: tmp191 << samplePoint S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR57) const: 0x0 V_MOVRELS_B32 vDst(VGPR171) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR172) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR173) src0(VGPR2) # OpStore: : tmp191 >> param190 V_MOV_B32 vDst(VGPR136) src0(VGPR171) V_MOV_B32 vDst(VGPR137) src0(VGPR172) V_MOV_B32 vDst(VGPR138) src0(VGPR173) # OpStore: : const189 >> param192 V_MOV_B32 vDst(VGPR174) src0(LITERAL_CONST) const: 0x3f99999a V_MOV_B32 vDst(VGPR139) src0(VGPR174) # 193: OpFunctionCall: Float: sphereSDF(vf3;f1;(param190, param192) S_ADD_U32 sDst(SGPR49) src0(LITERAL_CONST) src1(0) const: 0x88 # VGPR[136:138] S_ADD_U32 sDst(SGPR50) src0(LITERAL_CONST) src1(0) const: 0x8b # VGPR139 S_MOV_B64 sDst(SGPR66) src0(EXEC) S_MOV_B32 sDst(SGPR48) src0(LITERAL_CONST) const: 0xaf # VGPR175 # Indirect branch to sphereSDF(vf3;f1;: ??? S_GETPC_B64 sDst(SGPR46) src0(SGPR46) S_ADD_U32 sDst(SGPR46) src0(SGPR46) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR47) src0(SGPR47) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR46) src0(SGPR46) S_MOV_B64 sDst(EXEC) src0(SGPR66) # .lbl4 # OpStore: : boxSDF(vf3;vf3; >> param194 V_MOV_B32 vDst(VGPR140) src0(VGPR165) # OpStore: : sphereSDF(vf3;f1; >> param196 V_MOV_B32 vDst(VGPR141) src0(VGPR170) # 198: OpFunctionCall: Float: differenceSDF(f1;f1;(param194, param196) S_ADD_U32 sDst(SGPR33) src0(LITERAL_CONST) src1(0) const: 0x8c # VGPR140 S_ADD_U32 sDst(SGPR34) src0(LITERAL_CONST) src1(0) const: 0x8d # VGPR141 S_MOV_B64 sDst(SGPR68) src0(EXEC) S_MOV_B32 sDst(SGPR32) src0(LITERAL_CONST) const: 0xb0 # VGPR176 # Indirect branch to differenceSDF(f1;f1;: ??? S_GETPC_B64 sDst(SGPR30) src0(SGPR30) S_ADD_U32 sDst(SGPR30) src0(SGPR30) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR31) src0(SGPR31) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR30) src0(SGPR30) S_MOV_B64 sDst(EXEC) src0(SGPR68) # .lbl5 # OpStore: : differenceSDF(f1;f1; >> param199 V_MOV_B32 vDst(VGPR142) src0(VGPR176) # OpStore: : sphereSDF(vf3;f1; >> param200 V_MOV_B32 vDst(VGPR143) src0(VGPR175) # 202: OpFunctionCall: Float: intersectSDF(f1;f1;(param199, param200) S_ADD_U32 sDst(SGPR25) src0(LITERAL_CONST) src1(0) const: 0x8e # VGPR142 S_ADD_U32 sDst(SGPR26) src0(LITERAL_CONST) src1(0) const: 0x8f # VGPR143 S_MOV_B64 sDst(SGPR70) src0(EXEC) S_MOV_B32 sDst(SGPR24) src0(LITERAL_CONST) const: 0xb1 # VGPR177 # Indirect branch to intersectSDF(f1;f1;: ??? S_GETPC_B64 sDst(SGPR22) src0(SGPR22) S_ADD_U32 sDst(SGPR22) src0(SGPR22) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR23) src0(SGPR23) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR22) src0(SGPR22) S_MOV_B64 sDst(EXEC) src0(SGPR70) # .lbl6 # OpReturnValue: : << intersectSDF(f1;f1; S_MOV_B32 sDst(M0) src0(SGPR56) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR177) S_SETPC_B64 sDst(SGPR54) src0(SGPR54) # Float shortestDistanceToSurface(vf3;vf3;f1;f1;(FloatVector3* eye, FloatVector3* marchingDirection, Float* start, Float* end) Function: Float shortestDistanceToSurface(vf3;vf3;f1;f1;(, FloatVector3 sceneSDF(vf3;.marchingDirection, Float sceneSDF(vf3;.start, Float sceneSDF(vf3;.end) S_MOV_B64 sDst(SGPR80) src0(EXEC) # lb44 Label: lb44 # 206: OpLoad: Float: tmp206 << start S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR77) const: 0x0 V_MOVRELS_B32 vDst(VGPR183) src0(VGPR0) # OpStore: : tmp206 >> depth V_MOV_B32 vDst(VGPR178) src0(VGPR183) # OpStore: : const210 >> i V_MOV_B32 vDst(VGPR179) src0(0) # OpBranch: to lb211 # lb211 Label: lb211 # OpLoopMerge: (merge: lb213, continue: lb214) # CF Block: Merge: lb213, Continue: lb214 S_MOV_B64 sDst(SGPR82) src0(EXEC) S_MOV_B64 sDst(SGPR84) src0(EXEC) S_MOV_B64 sDst(SGPR86) src0(EXEC) Label: lb211Loop # OpBranch: to lb215 # lb215 Label: lb215 # 216: OpLoad: Int: tmp216 << i Decorators: RelaxedPrecision # 219: OpSLessThan: Bool: tmp219 << tmp216, const217 V_MOV_B32 vDst(VGPR184) src0(LITERAL_CONST) const: 0x000000ff V_CMP_LT_I32 dst(SGPR88) src0(VGPR179) src1(VGPR184) // VOP3a # OpBranchConditional: if(tmp219) then branch to lb212, else branch to lb213 # CF Block: Cond Branch: true: lb212, false: lb213 S_AND_B64 sDst(EXEC) src0(SGPR88) src1(EXEC) S_CBRANCH_EXECZ ??? lb213 # lb212 Label: lb212 S_MOV_B64 sDst(SGPR84) src0(EXEC) S_MOV_B64 sDst(SGPR86) src0(EXEC) # 221: OpLoad: FloatVector3: tmp221 << eye S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR75) const: 0x0 V_MOVRELS_B32 vDst(VGPR185) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR186) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR187) src0(VGPR2) # 222: OpLoad: Float: tmp222 << depth # 223: OpLoad: FloatVector3: tmp223 << marchingDirection S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR76) const: 0x0 V_MOVRELS_B32 vDst(VGPR188) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR189) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR190) src0(VGPR2) # 224: OpVectorTimesScalar: FloatVector3: tmp224 << tmp223, tmp222 V_MUL_F32 vDst(VGPR191) src0(VGPR178) src1(VGPR188) // VOP2 V_MUL_F32 vDst(VGPR192) src0(VGPR178) src1(VGPR189) // VOP2 V_MUL_F32 vDst(VGPR193) src0(VGPR178) src1(VGPR190) // VOP2 # 225: OpFAdd: FloatVector3: tmp225 << tmp221, tmp224 V_ADD_F32 vDst(VGPR194) src0(VGPR185) src1(VGPR191) // VOP2 V_ADD_F32 vDst(VGPR195) src0(VGPR186) src1(VGPR192) // VOP2 V_ADD_F32 vDst(VGPR196) src0(VGPR187) src1(VGPR193) // VOP2 # OpStore: : tmp225 >> param226 V_MOV_B32 vDst(VGPR180) src0(VGPR194) V_MOV_B32 vDst(VGPR181) src0(VGPR195) V_MOV_B32 vDst(VGPR182) src0(VGPR196) # 227: OpFunctionCall: Float: sceneSDF(vf3;(param226) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xb4 # VGPR[180:182] S_MOV_B64 sDst(SGPR90) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0xc5 # VGPR197 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR90) # .lbl7 # 230: OpFOrdLessThan: Bool: tmp230 << sceneSDF(vf3;, const229 V_MOV_B32 vDst(VGPR198) src0(LITERAL_CONST) const: 0x38d1b717 V_CMP_LT_F32 dst(SGPR92) src0(VGPR197) src1(VGPR198) // VOP3a # OpSelectionMerge: (merge: lb232) # CF Block: Merge: lb232 S_MOV_B64 sDst(SGPR94) src0(EXEC) # OpBranchConditional: if(tmp230) then branch to lb231, else branch to lb232 # CF Block: Cond Branch: true: lb231, false: lb232 S_AND_B64 sDst(EXEC) src0(SGPR92) src1(EXEC) S_CBRANCH_EXECZ ??? lb232 # lb231 Label: lb231 # 233: OpLoad: Float: tmp233 << depth # OpReturnValue: : << tmp233 S_MOV_B32 sDst(M0) src0(SGPR74) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR178) S_ANDN2_B64 sDst(SGPR80) src0(SGPR80) src1(EXEC) S_ANDN2_B64 sDst(SGPR84) src0(SGPR84) src1(EXEC) S_ANDN2_B64 sDst(SGPR86) src0(SGPR86) src1(EXEC) # lb232 Label: lb232 # CF Merge Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR94) S_AND_B64 sDst(EXEC) src0(EXEC) src1(SGPR86) # 236: OpLoad: Float: tmp236 << depth # 237: OpFAdd: Float: tmp237 << tmp236, sceneSDF(vf3; V_ADD_F32 vDst(VGPR199) src0(VGPR178) src1(VGPR197) // VOP2 # OpStore: : tmp237 >> depth V_MOV_B32 vDst(VGPR178) src0(VGPR199) # 238: OpLoad: Float: tmp238 << depth # 239: OpLoad: Float: tmp239 << end S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR200) src0(VGPR0) # 240: OpFOrdGreaterThanEqual: Bool: tmp240 << tmp238, tmp239 V_CMP_GE_F32 dst(SGPR96) src0(VGPR178) src1(VGPR200) // VOP3a # OpSelectionMerge: (merge: lb242) # CF Block: Merge: lb242 S_MOV_B64 sDst(SGPR98) src0(EXEC) # OpBranchConditional: if(tmp240) then branch to lb241, else branch to lb242 # CF Block: Cond Branch: true: lb241, false: lb242 S_AND_B64 sDst(EXEC) src0(SGPR96) src1(EXEC) S_CBRANCH_EXECZ ??? lb242 # lb241 Label: lb241 # 243: OpLoad: Float: tmp243 << end S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR201) src0(VGPR0) # OpReturnValue: : << tmp243 S_MOV_B32 sDst(M0) src0(SGPR74) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR201) S_ANDN2_B64 sDst(SGPR80) src0(SGPR80) src1(EXEC) S_ANDN2_B64 sDst(SGPR84) src0(SGPR84) src1(EXEC) S_ANDN2_B64 sDst(SGPR86) src0(SGPR86) src1(EXEC) # lb242 Label: lb242 # CF Merge Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR98) S_AND_B64 sDst(EXEC) src0(EXEC) src1(SGPR86) # OpBranch: to lb214 # lb214 Label: lb214 # CF Continue Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR84) # 245: OpLoad: Int: tmp245 << i Decorators: RelaxedPrecision # 247: OpIAdd: Int: tmp247 << tmp245, const246 Decorators: RelaxedPrecision V_MOV_B32 vDst(VGPR202) src0(1_INT) V_ADD_I32 vDst(VGPR203) src0(VGPR179) src1(VGPR202) // VOP2 # OpStore: : tmp247 >> i V_MOV_B32 vDst(VGPR179) src0(VGPR203) # OpBranch: to lb211 S_BRANCH ??? lb211Loop # lb213 Label: lb213 # CF Merge Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR82) S_AND_B64 sDst(EXEC) src0(EXEC) src1(SGPR80) # 248: OpLoad: Float: tmp248 << end S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR204) src0(VGPR0) # OpReturnValue: : << tmp248 S_MOV_B32 sDst(M0) src0(SGPR74) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR204) S_SETPC_B64 sDst(SGPR72) src0(SGPR72) # FloatVector3 rayDirection(f1;vf2;vf2;(Float* fieldOfView, FloatVector2* size, FloatVector2* fragCoord) Function: FloatVector3 rayDirection(f1;vf2;vf2;(, FloatVector2 shortestDistanceToSurface(vf3;vf3;f1;f1;.size, FloatVector2 shortestDistanceToSurface(vf3;vf3;f1;f1;.fragCoord) S_MOV_B64 sDst(SGPR106) src0(EXEC) # lb52 Label: lb52 # 252: OpLoad: FloatVector2: tmp252 << fragCoord S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR105) const: 0x0 V_MOVRELS_B32 vDst(VGPR205) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR206) src0(VGPR1) # 253: OpLoad: FloatVector2: tmp253 << size S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR104) const: 0x0 V_MOVRELS_B32 vDst(VGPR207) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR208) src0(VGPR1) # 254: OpCompositeConstruct: FloatVector2: tmp254 << const135, const135 V_MOV_B32 vDst(VGPR209) src0(2_0_F) V_MOV_B32 vDst(VGPR210) src0(2_0_F) # 255: OpFDiv: FloatVector2: tmp255 << tmp253, tmp254 V_RCP_F32 vDst(VGPR211) src0(VGPR209) V_RCP_F32 vDst(VGPR212) src0(VGPR210) V_MUL_F32 vDst(VGPR211) src0(VGPR207) src1(VGPR211) // VOP2 V_MUL_F32 vDst(VGPR212) src0(VGPR208) src1(VGPR212) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR211) src0(VGPR211) src1(VGPR209) src2(VGPR207) abs(0) clamp(0) omod(0) neg(0) // VOP3a V_DIV_FIXUP_F32 vDst(VGPR212) src0(VGPR212) src1(VGPR210) src2(VGPR208) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 256: OpFSub: FloatVector2: tmp256 << tmp252, tmp255 V_SUB_F32 vDst(VGPR213) src0(VGPR205) src1(VGPR211) // VOP2 V_SUB_F32 vDst(VGPR214) src0(VGPR206) src1(VGPR212) // VOP2 # 258: OpAccessChain: Float*: size[1] # 259: OpLoad: Float: tmp259 << size[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR104) const: 0x0 V_MOVRELS_B32 vDst(VGPR215) src0(VGPR1) # 260: OpLoad: Float: tmp260 << fieldOfView S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR103) const: 0x0 V_MOVRELS_B32 vDst(VGPR216) src0(VGPR0) # 261: OpExtInst(Radians): Float: tmp261 << tmp260 V_MOV_B32 vDst(VGPR218) src0(LITERAL_CONST) const: 0x3c8efa35 V_MUL_F32 vDst(VGPR217) src0(VGPR216) src1(VGPR218) // VOP2 # 262: OpFDiv: Float: tmp262 << tmp261, const135 V_MOV_B32 vDst(VGPR219) src0(2_0_F) V_RCP_F32 vDst(VGPR220) src0(VGPR219) V_MUL_F32 vDst(VGPR220) src0(VGPR217) src1(VGPR220) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR220) src0(VGPR220) src1(VGPR219) src2(VGPR217) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 263: OpExtInst(Tan): Float: tmp263 << tmp262 V_MUL_F32 vDst(VGPR221) src0(LITERAL_CONST) src1(VGPR220) // VOP2 const: 0x3e22f983 V_SIN_F32 vDst(VGPR222) src0(VGPR221) V_COS_F32 vDst(VGPR221) src0(VGPR221) V_RCP_F32 vDst(VGPR223) src0(VGPR221) V_MUL_F32 vDst(VGPR223) src0(VGPR222) src1(VGPR223) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR223) src0(VGPR223) src1(VGPR221) src2(VGPR222) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 264: OpFDiv: Float: tmp264 << tmp259, tmp263 V_RCP_F32 vDst(VGPR224) src0(VGPR223) V_MUL_F32 vDst(VGPR224) src0(VGPR215) src1(VGPR224) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR224) src0(VGPR224) src1(VGPR223) src2(VGPR215) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 267: OpFNegate: Float: tmp267 << tmp264 V_MUL_F32 vDst(VGPR225) src0(M1_0_F) src1(VGPR224) // VOP2 # 268: OpCompositeExtract: Float: tmp268 << tmp256, 0 V_MOV_B32 vDst(VGPR226) src0(VGPR213) # 269: OpCompositeExtract: Float: tmp269 << tmp256, 1 V_MOV_B32 vDst(VGPR227) src0(VGPR214) # 270: OpCompositeConstruct: FloatVector3: tmp270 << tmp268, tmp269, tmp267 V_MOV_B32 vDst(VGPR228) src0(VGPR226) V_MOV_B32 vDst(VGPR229) src0(VGPR227) V_MOV_B32 vDst(VGPR230) src0(VGPR225) # 271: OpExtInst(Normalize): FloatVector3: tmp271 << tmp270 V_MUL_F32 vDst(VGPR231) src0(VGPR228) src1(VGPR228) // VOP2 V_MAC_F32 vDst(VGPR231) src0(VGPR229) src1(VGPR229) // VOP2 V_MAC_F32 vDst(VGPR231) src0(VGPR230) src1(VGPR230) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR231) src0(VGPR231) V_MUL_F32 vDst(VGPR232) src0(VGPR228) src1(VGPR231) // VOP2 V_MUL_F32 vDst(VGPR233) src0(VGPR229) src1(VGPR231) // VOP2 V_MUL_F32 vDst(VGPR234) src0(VGPR230) src1(VGPR231) // VOP2 # OpReturnValue: : << tmp271 S_MOV_B32 sDst(M0) src0(SGPR102) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR232) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR233) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR234) S_SETPC_B64 sDst(SGPR100) src0(SGPR100) # FloatVector3 estimateNormal(vf3;(FloatVector3* p) Function: FloatVector3 estimateNormal(vf3;() S_MOV_B64 sDst(SGPR112) src0(EXEC) # lb56 Label: lb56 # 274: OpAccessChain: Float*: p[0] # 275: OpLoad: Float: tmp275 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR253) src0(VGPR0) # 276: OpFAdd: Float: tmp276 << tmp275, const229 V_MOV_B32 vDst(VGPR254) src0(LITERAL_CONST) const: 0x38d1b717 V_ADD_F32 vDst(VGPR255) src0(VGPR253) src1(VGPR254) // VOP2 # 277: OpAccessChain: Float*: p[1] # 278: OpLoad: Float: tmp278 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR256) src0(VGPR1) # 279: OpAccessChain: Float*: p[2] # 280: OpLoad: Float: tmp280 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR257) src0(VGPR2) # 281: OpCompositeConstruct: FloatVector3: tmp281 << tmp276, tmp278, tmp280 V_MOV_B32 vDst(VGPR258) src0(VGPR255) V_MOV_B32 vDst(VGPR259) src0(VGPR256) V_MOV_B32 vDst(VGPR260) src0(VGPR257) # OpStore: : tmp281 >> param282 V_MOV_B32 vDst(VGPR235) src0(VGPR258) V_MOV_B32 vDst(VGPR236) src0(VGPR259) V_MOV_B32 vDst(VGPR237) src0(VGPR260) # 283: OpFunctionCall: Float: sceneSDF(vf3;(param282) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xeb # VGPR[235:237] S_MOV_B64 sDst(SGPR114) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0x105 # VGPR261 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR114) # .lbl8 # 284: OpAccessChain: Float*: p[0] # 285: OpLoad: Float: tmp285 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR262) src0(VGPR0) # 286: OpFSub: Float: tmp286 << tmp285, const229 V_MOV_B32 vDst(VGPR263) src0(LITERAL_CONST) const: 0x38d1b717 V_SUB_F32 vDst(VGPR264) src0(VGPR262) src1(VGPR263) // VOP2 # 287: OpAccessChain: Float*: p[1] # 288: OpLoad: Float: tmp288 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR265) src0(VGPR1) # 289: OpAccessChain: Float*: p[2] # 290: OpLoad: Float: tmp290 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR266) src0(VGPR2) # 291: OpCompositeConstruct: FloatVector3: tmp291 << tmp286, tmp288, tmp290 V_MOV_B32 vDst(VGPR267) src0(VGPR264) V_MOV_B32 vDst(VGPR268) src0(VGPR265) V_MOV_B32 vDst(VGPR269) src0(VGPR266) # OpStore: : tmp291 >> param292 V_MOV_B32 vDst(VGPR238) src0(VGPR267) V_MOV_B32 vDst(VGPR239) src0(VGPR268) V_MOV_B32 vDst(VGPR240) src0(VGPR269) # 293: OpFunctionCall: Float: sceneSDF(vf3;(param292) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xee # VGPR[238:240] S_MOV_B64 sDst(SGPR116) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0x10e # VGPR270 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR116) # .lbl9 # 294: OpFSub: Float: tmp294 << sceneSDF(vf3;, sceneSDF(vf3; V_SUB_F32 vDst(VGPR271) src0(VGPR261) src1(VGPR270) // VOP2 # 295: OpAccessChain: Float*: p[0] # 296: OpLoad: Float: tmp296 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR272) src0(VGPR0) # 297: OpAccessChain: Float*: p[1] # 298: OpLoad: Float: tmp298 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR273) src0(VGPR1) # 299: OpFAdd: Float: tmp299 << tmp298, const229 V_MOV_B32 vDst(VGPR274) src0(LITERAL_CONST) const: 0x38d1b717 V_ADD_F32 vDst(VGPR275) src0(VGPR273) src1(VGPR274) // VOP2 # 300: OpAccessChain: Float*: p[2] # 301: OpLoad: Float: tmp301 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR276) src0(VGPR2) # 302: OpCompositeConstruct: FloatVector3: tmp302 << tmp296, tmp299, tmp301 V_MOV_B32 vDst(VGPR277) src0(VGPR272) V_MOV_B32 vDst(VGPR278) src0(VGPR275) V_MOV_B32 vDst(VGPR279) src0(VGPR276) # OpStore: : tmp302 >> param303 V_MOV_B32 vDst(VGPR241) src0(VGPR277) V_MOV_B32 vDst(VGPR242) src0(VGPR278) V_MOV_B32 vDst(VGPR243) src0(VGPR279) # 304: OpFunctionCall: Float: sceneSDF(vf3;(param303) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xf1 # VGPR[241:243] S_MOV_B64 sDst(SGPR118) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0x118 # VGPR280 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR118) # .lbl10 # 305: OpAccessChain: Float*: p[0] # 306: OpLoad: Float: tmp306 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR281) src0(VGPR0) # 307: OpAccessChain: Float*: p[1] # 308: OpLoad: Float: tmp308 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR282) src0(VGPR1) # 309: OpFSub: Float: tmp309 << tmp308, const229 V_MOV_B32 vDst(VGPR283) src0(LITERAL_CONST) const: 0x38d1b717 V_SUB_F32 vDst(VGPR284) src0(VGPR282) src1(VGPR283) // VOP2 # 310: OpAccessChain: Float*: p[2] # 311: OpLoad: Float: tmp311 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR285) src0(VGPR2) # 312: OpCompositeConstruct: FloatVector3: tmp312 << tmp306, tmp309, tmp311 V_MOV_B32 vDst(VGPR286) src0(VGPR281) V_MOV_B32 vDst(VGPR287) src0(VGPR284) V_MOV_B32 vDst(VGPR288) src0(VGPR285) # OpStore: : tmp312 >> param313 V_MOV_B32 vDst(VGPR244) src0(VGPR286) V_MOV_B32 vDst(VGPR245) src0(VGPR287) V_MOV_B32 vDst(VGPR246) src0(VGPR288) # 314: OpFunctionCall: Float: sceneSDF(vf3;(param313) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xf4 # VGPR[244:246] S_MOV_B64 sDst(SGPR120) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0x121 # VGPR289 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR120) # .lbl11 # 315: OpFSub: Float: tmp315 << sceneSDF(vf3;, sceneSDF(vf3; V_SUB_F32 vDst(VGPR290) src0(VGPR280) src1(VGPR289) // VOP2 # 316: OpAccessChain: Float*: p[0] # 317: OpLoad: Float: tmp317 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR291) src0(VGPR0) # 318: OpAccessChain: Float*: p[1] # 319: OpLoad: Float: tmp319 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR292) src0(VGPR1) # 320: OpAccessChain: Float*: p[2] # 321: OpLoad: Float: tmp321 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR293) src0(VGPR2) # 322: OpFAdd: Float: tmp322 << tmp321, const229 V_MOV_B32 vDst(VGPR294) src0(LITERAL_CONST) const: 0x38d1b717 V_ADD_F32 vDst(VGPR295) src0(VGPR293) src1(VGPR294) // VOP2 # 323: OpCompositeConstruct: FloatVector3: tmp323 << tmp317, tmp319, tmp322 V_MOV_B32 vDst(VGPR296) src0(VGPR291) V_MOV_B32 vDst(VGPR297) src0(VGPR292) V_MOV_B32 vDst(VGPR298) src0(VGPR295) # OpStore: : tmp323 >> param324 V_MOV_B32 vDst(VGPR247) src0(VGPR296) V_MOV_B32 vDst(VGPR248) src0(VGPR297) V_MOV_B32 vDst(VGPR249) src0(VGPR298) # 325: OpFunctionCall: Float: sceneSDF(vf3;(param324) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xf7 # VGPR[247:249] S_MOV_B64 sDst(SGPR122) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0x12b # VGPR299 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR122) # .lbl12 # 326: OpAccessChain: Float*: p[0] # 327: OpLoad: Float: tmp327 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR300) src0(VGPR0) # 328: OpAccessChain: Float*: p[1] # 329: OpLoad: Float: tmp329 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR301) src0(VGPR1) # 330: OpAccessChain: Float*: p[2] # 331: OpLoad: Float: tmp331 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR111) const: 0x0 V_MOVRELS_B32 vDst(VGPR302) src0(VGPR2) # 332: OpFSub: Float: tmp332 << tmp331, const229 V_MOV_B32 vDst(VGPR303) src0(LITERAL_CONST) const: 0x38d1b717 V_SUB_F32 vDst(VGPR304) src0(VGPR302) src1(VGPR303) // VOP2 # 333: OpCompositeConstruct: FloatVector3: tmp333 << tmp327, tmp329, tmp332 V_MOV_B32 vDst(VGPR305) src0(VGPR300) V_MOV_B32 vDst(VGPR306) src0(VGPR301) V_MOV_B32 vDst(VGPR307) src0(VGPR304) # OpStore: : tmp333 >> param334 V_MOV_B32 vDst(VGPR250) src0(VGPR305) V_MOV_B32 vDst(VGPR251) src0(VGPR306) V_MOV_B32 vDst(VGPR252) src0(VGPR307) # 335: OpFunctionCall: Float: sceneSDF(vf3;(param334) S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0xfa # VGPR[250:252] S_MOV_B64 sDst(SGPR124) src0(EXEC) S_MOV_B32 sDst(SGPR56) src0(LITERAL_CONST) const: 0x134 # VGPR308 # Indirect branch to sceneSDF(vf3;: ??? S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_ADD_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR124) # .lbl13 # 336: OpFSub: Float: tmp336 << sceneSDF(vf3;, sceneSDF(vf3; V_SUB_F32 vDst(VGPR309) src0(VGPR299) src1(VGPR308) // VOP2 # 337: OpCompositeConstruct: FloatVector3: tmp337 << tmp294, tmp315, tmp336 V_MOV_B32 vDst(VGPR310) src0(VGPR271) V_MOV_B32 vDst(VGPR311) src0(VGPR290) V_MOV_B32 vDst(VGPR312) src0(VGPR309) # 338: OpExtInst(Normalize): FloatVector3: tmp338 << tmp337 V_MUL_F32 vDst(VGPR313) src0(VGPR310) src1(VGPR310) // VOP2 V_MAC_F32 vDst(VGPR313) src0(VGPR311) src1(VGPR311) // VOP2 V_MAC_F32 vDst(VGPR313) src0(VGPR312) src1(VGPR312) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR313) src0(VGPR313) V_MUL_F32 vDst(VGPR314) src0(VGPR310) src1(VGPR313) // VOP2 V_MUL_F32 vDst(VGPR315) src0(VGPR311) src1(VGPR313) // VOP2 V_MUL_F32 vDst(VGPR316) src0(VGPR312) src1(VGPR313) // VOP2 # OpReturnValue: : << tmp338 S_MOV_B32 sDst(M0) src0(SGPR110) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR314) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR315) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR316) S_SETPC_B64 sDst(SGPR108) src0(SGPR108) # FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;(FloatVector3* k_d, FloatVector3* k_s, Float* alpha, FloatVector3* p, FloatVector3* eye, FloatVector3* lightPos, FloatVector3* lightIntensity) Function: FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;(, FloatVector3 estimateNormal(vf3;.k_s, Float estimateNormal(vf3;.alpha, FloatVector3 estimateNormal(vf3;.p, FloatVector3 estimateNormal(vf3;.eye, FloatVector3 estimateNormal(vf3;.lightPos, FloatVector3 estimateNormal(vf3;.lightIntensity) S_MOV_B64 sDst(SGPR136) src0(EXEC) # lb66 Label: lb66 # 343: OpLoad: FloatVector3: tmp343 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR132) const: 0x0 V_MOVRELS_B32 vDst(VGPR320) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR321) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR322) src0(VGPR2) # OpStore: : tmp343 >> param342 V_MOV_B32 vDst(VGPR317) src0(VGPR320) V_MOV_B32 vDst(VGPR318) src0(VGPR321) V_MOV_B32 vDst(VGPR319) src0(VGPR322) # 344: OpFunctionCall: FloatVector3: estimateNormal(vf3;(param342) S_ADD_U32 sDst(SGPR111) src0(LITERAL_CONST) src1(0) const: 0x13d # VGPR[317:319] S_MOV_B64 sDst(SGPR138) src0(EXEC) S_MOV_B32 sDst(SGPR110) src0(LITERAL_CONST) const: 0x143 # VGPR[323:325] # Indirect branch to estimateNormal(vf3;: ??? S_GETPC_B64 sDst(SGPR108) src0(SGPR108) S_ADD_U32 sDst(SGPR108) src0(SGPR108) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR109) src0(SGPR109) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR108) src0(SGPR108) S_MOV_B64 sDst(EXEC) src0(SGPR138) # .lbl14 # 346: OpLoad: FloatVector3: tmp346 << lightPos S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR134) const: 0x0 V_MOVRELS_B32 vDst(VGPR326) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR327) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR328) src0(VGPR2) # 347: OpLoad: FloatVector3: tmp347 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR132) const: 0x0 V_MOVRELS_B32 vDst(VGPR329) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR330) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR331) src0(VGPR2) # 348: OpFSub: FloatVector3: tmp348 << tmp346, tmp347 V_SUB_F32 vDst(VGPR332) src0(VGPR326) src1(VGPR329) // VOP2 V_SUB_F32 vDst(VGPR333) src0(VGPR327) src1(VGPR330) // VOP2 V_SUB_F32 vDst(VGPR334) src0(VGPR328) src1(VGPR331) // VOP2 # 349: OpExtInst(Normalize): FloatVector3: tmp349 << tmp348 V_MUL_F32 vDst(VGPR335) src0(VGPR332) src1(VGPR332) // VOP2 V_MAC_F32 vDst(VGPR335) src0(VGPR333) src1(VGPR333) // VOP2 V_MAC_F32 vDst(VGPR335) src0(VGPR334) src1(VGPR334) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR335) src0(VGPR335) V_MUL_F32 vDst(VGPR336) src0(VGPR332) src1(VGPR335) // VOP2 V_MUL_F32 vDst(VGPR337) src0(VGPR333) src1(VGPR335) // VOP2 V_MUL_F32 vDst(VGPR338) src0(VGPR334) src1(VGPR335) // VOP2 # 351: OpLoad: FloatVector3: tmp351 << eye S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR133) const: 0x0 V_MOVRELS_B32 vDst(VGPR339) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR340) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR341) src0(VGPR2) # 352: OpLoad: FloatVector3: tmp352 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR132) const: 0x0 V_MOVRELS_B32 vDst(VGPR342) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR343) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR344) src0(VGPR2) # 353: OpFSub: FloatVector3: tmp353 << tmp351, tmp352 V_SUB_F32 vDst(VGPR345) src0(VGPR339) src1(VGPR342) // VOP2 V_SUB_F32 vDst(VGPR346) src0(VGPR340) src1(VGPR343) // VOP2 V_SUB_F32 vDst(VGPR347) src0(VGPR341) src1(VGPR344) // VOP2 # 354: OpExtInst(Normalize): FloatVector3: tmp354 << tmp353 V_MUL_F32 vDst(VGPR348) src0(VGPR345) src1(VGPR345) // VOP2 V_MAC_F32 vDst(VGPR348) src0(VGPR346) src1(VGPR346) // VOP2 V_MAC_F32 vDst(VGPR348) src0(VGPR347) src1(VGPR347) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR348) src0(VGPR348) V_MUL_F32 vDst(VGPR349) src0(VGPR345) src1(VGPR348) // VOP2 V_MUL_F32 vDst(VGPR350) src0(VGPR346) src1(VGPR348) // VOP2 V_MUL_F32 vDst(VGPR351) src0(VGPR347) src1(VGPR348) // VOP2 # 357: OpFNegate: FloatVector3: tmp357 << tmp349 V_MUL_F32 vDst(VGPR352) src0(M1_0_F) src1(VGPR336) // VOP2 V_MUL_F32 vDst(VGPR353) src0(M1_0_F) src1(VGPR337) // VOP2 V_MUL_F32 vDst(VGPR354) src0(M1_0_F) src1(VGPR338) // VOP2 # 359: OpExtInst(Reflect): FloatVector3: tmp359 << tmp357, estimateNormal(vf3; V_MUL_F32 vDst(VGPR358) src0(VGPR352) src1(VGPR323) // VOP2 V_MAC_F32 vDst(VGPR358) src0(VGPR353) src1(VGPR324) // VOP2 V_MAC_F32 vDst(VGPR358) src0(VGPR354) src1(VGPR325) // VOP2 V_MUL_F32 vDst(VGPR358) src0(2_0_F) src1(VGPR358) // VOP2 V_MUL_F32 vDst(VGPR355) src0(VGPR323) src1(VGPR358) // VOP2 V_MUL_F32 vDst(VGPR356) src0(VGPR324) src1(VGPR358) // VOP2 V_MUL_F32 vDst(VGPR357) src0(VGPR325) src1(VGPR358) // VOP2 V_SUB_F32 vDst(VGPR355) src0(VGPR352) src1(VGPR355) // VOP2 V_SUB_F32 vDst(VGPR356) src0(VGPR353) src1(VGPR356) // VOP2 V_SUB_F32 vDst(VGPR357) src0(VGPR354) src1(VGPR357) // VOP2 # 360: OpExtInst(Normalize): FloatVector3: tmp360 << tmp359 V_MUL_F32 vDst(VGPR359) src0(VGPR355) src1(VGPR355) // VOP2 V_MAC_F32 vDst(VGPR359) src0(VGPR356) src1(VGPR356) // VOP2 V_MAC_F32 vDst(VGPR359) src0(VGPR357) src1(VGPR357) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR359) src0(VGPR359) V_MUL_F32 vDst(VGPR360) src0(VGPR355) src1(VGPR359) // VOP2 V_MUL_F32 vDst(VGPR361) src0(VGPR356) src1(VGPR359) // VOP2 V_MUL_F32 vDst(VGPR362) src0(VGPR357) src1(VGPR359) // VOP2 # 364: OpDot: Float: tmp364 << tmp349, estimateNormal(vf3; V_MUL_F32 vDst(VGPR363) src0(VGPR336) src1(VGPR323) // VOP2 V_MAC_F32 vDst(VGPR363) src0(VGPR337) src1(VGPR324) // VOP2 V_MAC_F32 vDst(VGPR363) src0(VGPR338) src1(VGPR325) // VOP2 # 368: OpDot: Float: tmp368 << tmp360, tmp354 V_MUL_F32 vDst(VGPR364) src0(VGPR360) src1(VGPR349) // VOP2 V_MAC_F32 vDst(VGPR364) src0(VGPR361) src1(VGPR350) // VOP2 V_MAC_F32 vDst(VGPR364) src0(VGPR362) src1(VGPR351) // VOP2 # 370: OpFOrdLessThan: Bool: tmp370 << tmp364, const96 V_MOV_B32 vDst(VGPR365) src0(LITERAL_CONST) const: 0x00000000 V_CMP_LT_F32 dst(SGPR140) src0(VGPR363) src1(VGPR365) // VOP3a # OpSelectionMerge: (merge: lb372) # CF Block: Merge: lb372 S_MOV_B64 sDst(SGPR142) src0(EXEC) # OpBranchConditional: if(tmp370) then branch to lb371, else branch to lb372 # CF Block: Cond Branch: true: lb371, false: lb372 S_AND_B64 sDst(EXEC) src0(SGPR140) src1(EXEC) S_CBRANCH_EXECZ ??? lb372 # lb371 Label: lb371 # OpReturnValue: : << const373 V_MOV_B32 vDst(VGPR366) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR367) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR368) src0(LITERAL_CONST) const: 0x00000000 S_MOV_B32 sDst(M0) src0(SGPR128) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR366) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR367) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR368) S_ANDN2_B64 sDst(SGPR136) src0(SGPR136) src1(EXEC) # lb372 Label: lb372 # CF Merge Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR142) S_AND_B64 sDst(EXEC) src0(EXEC) src1(SGPR136) # 376: OpFOrdLessThan: Bool: tmp376 << tmp368, const96 V_MOV_B32 vDst(VGPR369) src0(LITERAL_CONST) const: 0x00000000 V_CMP_LT_F32 dst(SGPR144) src0(VGPR364) src1(VGPR369) // VOP3a # OpSelectionMerge: (merge: lb378) # CF Block: Merge: lb378 S_MOV_B64 sDst(SGPR146) src0(EXEC) # OpBranchConditional: if(tmp376) then branch to lb377, else branch to lb378 # CF Block: Cond Branch: true: lb377, false: lb378 S_AND_B64 sDst(EXEC) src0(SGPR144) src1(EXEC) S_CBRANCH_EXECZ ??? lb378 # lb377 Label: lb377 # 379: OpLoad: FloatVector3: tmp379 << lightIntensity S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR135) const: 0x0 V_MOVRELS_B32 vDst(VGPR370) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR371) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR372) src0(VGPR2) # 380: OpLoad: FloatVector3: tmp380 << k_d S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR129) const: 0x0 V_MOVRELS_B32 vDst(VGPR373) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR374) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR375) src0(VGPR2) # 382: OpVectorTimesScalar: FloatVector3: tmp382 << tmp380, tmp364 V_MUL_F32 vDst(VGPR376) src0(VGPR363) src1(VGPR373) // VOP2 V_MUL_F32 vDst(VGPR377) src0(VGPR363) src1(VGPR374) // VOP2 V_MUL_F32 vDst(VGPR378) src0(VGPR363) src1(VGPR375) // VOP2 # 383: OpFMul: FloatVector3: tmp383 << tmp379, tmp382 V_MUL_F32 vDst(VGPR379) src0(VGPR370) src1(VGPR376) // VOP2 V_MUL_F32 vDst(VGPR380) src0(VGPR371) src1(VGPR377) // VOP2 V_MUL_F32 vDst(VGPR381) src0(VGPR372) src1(VGPR378) // VOP2 # OpReturnValue: : << tmp383 S_MOV_B32 sDst(M0) src0(SGPR128) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR379) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR380) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR381) S_ANDN2_B64 sDst(SGPR136) src0(SGPR136) src1(EXEC) # lb378 Label: lb378 # CF Merge Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR146) S_AND_B64 sDst(EXEC) src0(EXEC) src1(SGPR136) # 385: OpLoad: FloatVector3: tmp385 << lightIntensity S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR135) const: 0x0 V_MOVRELS_B32 vDst(VGPR382) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR383) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR384) src0(VGPR2) # 386: OpLoad: FloatVector3: tmp386 << k_d S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR129) const: 0x0 V_MOVRELS_B32 vDst(VGPR385) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR386) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR387) src0(VGPR2) # 388: OpVectorTimesScalar: FloatVector3: tmp388 << tmp386, tmp364 V_MUL_F32 vDst(VGPR388) src0(VGPR363) src1(VGPR385) // VOP2 V_MUL_F32 vDst(VGPR389) src0(VGPR363) src1(VGPR386) // VOP2 V_MUL_F32 vDst(VGPR390) src0(VGPR363) src1(VGPR387) // VOP2 # 389: OpLoad: FloatVector3: tmp389 << k_s S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR130) const: 0x0 V_MOVRELS_B32 vDst(VGPR391) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR392) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR393) src0(VGPR2) # 391: OpLoad: Float: tmp391 << alpha S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR131) const: 0x0 V_MOVRELS_B32 vDst(VGPR394) src0(VGPR0) # 392: OpExtInst(Pow): Float: tmp392 << tmp368, tmp391 V_LOG_F32 vDst(VGPR395) src0(VGPR364) V_MUL_F32 vDst(VGPR395) src0(VGPR394) src1(VGPR395) // VOP2 V_EXP_F32 vDst(VGPR395) src0(VGPR395) # 393: OpVectorTimesScalar: FloatVector3: tmp393 << tmp389, tmp392 V_MUL_F32 vDst(VGPR396) src0(VGPR395) src1(VGPR391) // VOP2 V_MUL_F32 vDst(VGPR397) src0(VGPR395) src1(VGPR392) // VOP2 V_MUL_F32 vDst(VGPR398) src0(VGPR395) src1(VGPR393) // VOP2 # 394: OpFAdd: FloatVector3: tmp394 << tmp388, tmp393 V_ADD_F32 vDst(VGPR399) src0(VGPR388) src1(VGPR396) // VOP2 V_ADD_F32 vDst(VGPR400) src0(VGPR389) src1(VGPR397) // VOP2 V_ADD_F32 vDst(VGPR401) src0(VGPR390) src1(VGPR398) // VOP2 # 395: OpFMul: FloatVector3: tmp395 << tmp385, tmp394 V_MUL_F32 vDst(VGPR402) src0(VGPR382) src1(VGPR399) // VOP2 V_MUL_F32 vDst(VGPR403) src0(VGPR383) src1(VGPR400) // VOP2 V_MUL_F32 vDst(VGPR404) src0(VGPR384) src1(VGPR401) // VOP2 # OpReturnValue: : << tmp395 S_MOV_B32 sDst(M0) src0(SGPR128) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR402) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR403) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR404) S_SETPC_B64 sDst(SGPR126) src0(SGPR126) # FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;(FloatVector3* k_a, FloatVector3* k_d, FloatVector3* k_s, Float* alpha, FloatVector3* p, FloatVector3* eye) Function: FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;(, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_d, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_s, Float phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.alpha, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.p, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.eye) S_MOV_B64 sDst(SGPR158) src0(EXEC) # lb75 Label: lb75 # 401: OpLoad: FloatVector3: tmp401 << k_a S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR151) const: 0x0 V_MOVRELS_B32 vDst(VGPR427) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR428) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR429) src0(VGPR2) # 402: OpFMul: FloatVector3: tmp402 << const400, tmp401 V_MOV_B32 vDst(VGPR430) src0(0_5_F) V_MOV_B32 vDst(VGPR431) src0(0_5_F) V_MOV_B32 vDst(VGPR432) src0(0_5_F) V_MUL_F32 vDst(VGPR433) src0(VGPR430) src1(VGPR427) // VOP2 V_MUL_F32 vDst(VGPR434) src0(VGPR431) src1(VGPR428) // VOP2 V_MUL_F32 vDst(VGPR435) src0(VGPR432) src1(VGPR429) // VOP2 # OpStore: : tmp402 >> color V_MOV_B32 vDst(VGPR405) src0(VGPR433) V_MOV_B32 vDst(VGPR406) src0(VGPR434) V_MOV_B32 vDst(VGPR407) src0(VGPR435) # 411: OpLoad: FloatVector3: tmp411 << k_d S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR152) const: 0x0 V_MOVRELS_B32 vDst(VGPR436) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR437) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR438) src0(VGPR2) # OpStore: : tmp411 >> param410 V_MOV_B32 vDst(VGPR408) src0(VGPR436) V_MOV_B32 vDst(VGPR409) src0(VGPR437) V_MOV_B32 vDst(VGPR410) src0(VGPR438) # 413: OpLoad: FloatVector3: tmp413 << k_s S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR153) const: 0x0 V_MOVRELS_B32 vDst(VGPR439) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR440) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR441) src0(VGPR2) # OpStore: : tmp413 >> param412 V_MOV_B32 vDst(VGPR411) src0(VGPR439) V_MOV_B32 vDst(VGPR412) src0(VGPR440) V_MOV_B32 vDst(VGPR413) src0(VGPR441) # 415: OpLoad: Float: tmp415 << alpha S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR154) const: 0x0 V_MOVRELS_B32 vDst(VGPR442) src0(VGPR0) # OpStore: : tmp415 >> param414 V_MOV_B32 vDst(VGPR414) src0(VGPR442) # 417: OpLoad: FloatVector3: tmp417 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR155) const: 0x0 V_MOVRELS_B32 vDst(VGPR443) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR444) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR445) src0(VGPR2) # OpStore: : tmp417 >> param416 V_MOV_B32 vDst(VGPR415) src0(VGPR443) V_MOV_B32 vDst(VGPR416) src0(VGPR444) V_MOV_B32 vDst(VGPR417) src0(VGPR445) # 419: OpLoad: FloatVector3: tmp419 << eye S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR156) const: 0x0 V_MOVRELS_B32 vDst(VGPR446) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR447) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR448) src0(VGPR2) # OpStore: : tmp419 >> param418 V_MOV_B32 vDst(VGPR418) src0(VGPR446) V_MOV_B32 vDst(VGPR419) src0(VGPR447) V_MOV_B32 vDst(VGPR420) src0(VGPR448) # OpStore: : const406 >> param420 V_MOV_B32 vDst(VGPR449) src0(LITERAL_CONST) const: 0x40c00000 V_MOV_B32 vDst(VGPR450) src0(2_0_F) V_MOV_B32 vDst(VGPR451) src0(4_0_F) V_MOV_B32 vDst(VGPR421) src0(VGPR449) V_MOV_B32 vDst(VGPR422) src0(VGPR450) V_MOV_B32 vDst(VGPR423) src0(VGPR451) # OpStore: : const409 >> param422 V_MOV_B32 vDst(VGPR452) src0(LITERAL_CONST) const: 0x3ecccccd V_MOV_B32 vDst(VGPR453) src0(LITERAL_CONST) const: 0x3ecccccd V_MOV_B32 vDst(VGPR454) src0(LITERAL_CONST) const: 0x3ecccccd V_MOV_B32 vDst(VGPR424) src0(VGPR452) V_MOV_B32 vDst(VGPR425) src0(VGPR453) V_MOV_B32 vDst(VGPR426) src0(VGPR454) # 424: OpFunctionCall: FloatVector3: phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;(param410, param412, param414, param416, param418, param420, param422) S_ADD_U32 sDst(SGPR129) src0(LITERAL_CONST) src1(0) const: 0x198 # VGPR[408:410] S_ADD_U32 sDst(SGPR130) src0(LITERAL_CONST) src1(0) const: 0x19b # VGPR[411:413] S_ADD_U32 sDst(SGPR131) src0(LITERAL_CONST) src1(0) const: 0x19e # VGPR414 S_ADD_U32 sDst(SGPR132) src0(LITERAL_CONST) src1(0) const: 0x19f # VGPR[415:417] S_ADD_U32 sDst(SGPR133) src0(LITERAL_CONST) src1(0) const: 0x1a2 # VGPR[418:420] S_ADD_U32 sDst(SGPR134) src0(LITERAL_CONST) src1(0) const: 0x1a5 # VGPR[421:423] S_ADD_U32 sDst(SGPR135) src0(LITERAL_CONST) src1(0) const: 0x1a8 # VGPR[424:426] S_MOV_B64 sDst(SGPR160) src0(EXEC) S_MOV_B32 sDst(SGPR128) src0(LITERAL_CONST) const: 0x1c7 # VGPR[455:457] # Indirect branch to phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;: ??? S_GETPC_B64 sDst(SGPR126) src0(SGPR126) S_ADD_U32 sDst(SGPR126) src0(SGPR126) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR127) src0(SGPR127) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR126) src0(SGPR126) S_MOV_B64 sDst(EXEC) src0(SGPR160) # .lbl15 # 425: OpLoad: FloatVector3: tmp425 << color # 426: OpFAdd: FloatVector3: tmp426 << tmp425, phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3; V_ADD_F32 vDst(VGPR458) src0(VGPR405) src1(VGPR455) // VOP2 V_ADD_F32 vDst(VGPR459) src0(VGPR406) src1(VGPR456) // VOP2 V_ADD_F32 vDst(VGPR460) src0(VGPR407) src1(VGPR457) // VOP2 # OpStore: : tmp426 >> color V_MOV_B32 vDst(VGPR405) src0(VGPR458) V_MOV_B32 vDst(VGPR406) src0(VGPR459) V_MOV_B32 vDst(VGPR407) src0(VGPR460) # 427: OpLoad: FloatVector3: tmp427 << color # OpReturnValue: : << tmp427 S_MOV_B32 sDst(M0) src0(SGPR150) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR405) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR406) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR407) S_SETPC_B64 sDst(SGPR148) src0(SGPR148) # FloatMatrix3x3 viewMatrix(vf3;vf3;vf3;(FloatVector3* eye, FloatVector3* center, FloatVector3* up) Function: FloatMatrix3x3 viewMatrix(vf3;vf3;vf3;(, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.center, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.up) S_MOV_B64 sDst(SGPR168) src0(EXEC) # lb81 Label: lb81 # 431: OpLoad: FloatVector3: tmp431 << center S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR166) const: 0x0 V_MOVRELS_B32 vDst(VGPR461) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR462) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR463) src0(VGPR2) # 432: OpLoad: FloatVector3: tmp432 << eye S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR165) const: 0x0 V_MOVRELS_B32 vDst(VGPR464) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR465) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR466) src0(VGPR2) # 433: OpFSub: FloatVector3: tmp433 << tmp431, tmp432 V_SUB_F32 vDst(VGPR467) src0(VGPR461) src1(VGPR464) // VOP2 V_SUB_F32 vDst(VGPR468) src0(VGPR462) src1(VGPR465) // VOP2 V_SUB_F32 vDst(VGPR469) src0(VGPR463) src1(VGPR466) // VOP2 # 434: OpExtInst(Normalize): FloatVector3: tmp434 << tmp433 V_MUL_F32 vDst(VGPR470) src0(VGPR467) src1(VGPR467) // VOP2 V_MAC_F32 vDst(VGPR470) src0(VGPR468) src1(VGPR468) // VOP2 V_MAC_F32 vDst(VGPR470) src0(VGPR469) src1(VGPR469) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR470) src0(VGPR470) V_MUL_F32 vDst(VGPR471) src0(VGPR467) src1(VGPR470) // VOP2 V_MUL_F32 vDst(VGPR472) src0(VGPR468) src1(VGPR470) // VOP2 V_MUL_F32 vDst(VGPR473) src0(VGPR469) src1(VGPR470) // VOP2 # 437: OpLoad: FloatVector3: tmp437 << up S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR167) const: 0x0 V_MOVRELS_B32 vDst(VGPR474) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR475) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR476) src0(VGPR2) # 438: OpExtInst(Cross): FloatVector3: tmp438 << tmp434, tmp437 V_MUL_F32 vDst(VGPR477) src0(VGPR472) src1(VGPR476) // VOP2 V_MUL_F32 vDst(VGPR478) src0(VGPR473) src1(VGPR474) // VOP2 V_MUL_F32 vDst(VGPR479) src0(VGPR471) src1(VGPR475) // VOP2 V_MAC_F32 vDst(VGPR477) src0(VGPR473) src1(VGPR475) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a V_MAC_F32 vDst(VGPR478) src0(VGPR471) src1(VGPR476) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a V_MAC_F32 vDst(VGPR479) src0(VGPR472) src1(VGPR474) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a # 442: OpExtInst(Cross): FloatVector3: tmp442 << tmp438, tmp434 V_MUL_F32 vDst(VGPR480) src0(VGPR478) src1(VGPR473) // VOP2 V_MUL_F32 vDst(VGPR481) src0(VGPR479) src1(VGPR471) // VOP2 V_MUL_F32 vDst(VGPR482) src0(VGPR477) src1(VGPR472) // VOP2 V_MAC_F32 vDst(VGPR480) src0(VGPR479) src1(VGPR472) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a V_MAC_F32 vDst(VGPR481) src0(VGPR477) src1(VGPR473) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a V_MAC_F32 vDst(VGPR482) src0(VGPR478) src1(VGPR471) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a # 446: OpFNegate: FloatVector3: tmp446 << tmp434 V_MUL_F32 vDst(VGPR483) src0(M1_0_F) src1(VGPR471) // VOP2 V_MUL_F32 vDst(VGPR484) src0(M1_0_F) src1(VGPR472) // VOP2 V_MUL_F32 vDst(VGPR485) src0(M1_0_F) src1(VGPR473) // VOP2 # 447: OpCompositeExtract: Float: tmp447 << tmp438, 0 V_MOV_B32 vDst(VGPR486) src0(VGPR477) # 448: OpCompositeExtract: Float: tmp448 << tmp438, 1 V_MOV_B32 vDst(VGPR487) src0(VGPR478) # 449: OpCompositeExtract: Float: tmp449 << tmp438, 2 V_MOV_B32 vDst(VGPR488) src0(VGPR479) # 450: OpCompositeExtract: Float: tmp450 << tmp442, 0 V_MOV_B32 vDst(VGPR489) src0(VGPR480) # 451: OpCompositeExtract: Float: tmp451 << tmp442, 1 V_MOV_B32 vDst(VGPR490) src0(VGPR481) # 452: OpCompositeExtract: Float: tmp452 << tmp442, 2 V_MOV_B32 vDst(VGPR491) src0(VGPR482) # 453: OpCompositeExtract: Float: tmp453 << tmp446, 0 V_MOV_B32 vDst(VGPR492) src0(VGPR483) # 454: OpCompositeExtract: Float: tmp454 << tmp446, 1 V_MOV_B32 vDst(VGPR493) src0(VGPR484) # 455: OpCompositeExtract: Float: tmp455 << tmp446, 2 V_MOV_B32 vDst(VGPR494) src0(VGPR485) # 456: OpCompositeConstruct: FloatVector3: tmp456 << tmp447, tmp448, tmp449 V_MOV_B32 vDst(VGPR495) src0(VGPR486) V_MOV_B32 vDst(VGPR496) src0(VGPR487) V_MOV_B32 vDst(VGPR497) src0(VGPR488) # 457: OpCompositeConstruct: FloatVector3: tmp457 << tmp450, tmp451, tmp452 V_MOV_B32 vDst(VGPR498) src0(VGPR489) V_MOV_B32 vDst(VGPR499) src0(VGPR490) V_MOV_B32 vDst(VGPR500) src0(VGPR491) # 458: OpCompositeConstruct: FloatVector3: tmp458 << tmp453, tmp454, tmp455 V_MOV_B32 vDst(VGPR501) src0(VGPR492) V_MOV_B32 vDst(VGPR502) src0(VGPR493) V_MOV_B32 vDst(VGPR503) src0(VGPR494) # 459: OpCompositeConstruct: FloatMatrix3x3: tmp459 << tmp456, tmp457, tmp458 V_MOV_B32 vDst(VGPR504) src0(VGPR495) V_MOV_B32 vDst(VGPR505) src0(VGPR496) V_MOV_B32 vDst(VGPR506) src0(VGPR497) V_MOV_B32 vDst(VGPR507) src0(VGPR498) V_MOV_B32 vDst(VGPR508) src0(VGPR499) V_MOV_B32 vDst(VGPR509) src0(VGPR500) V_MOV_B32 vDst(VGPR510) src0(VGPR501) V_MOV_B32 vDst(VGPR511) src0(VGPR502) V_MOV_B32 vDst(VGPR512) src0(VGPR503) # OpReturnValue: : << tmp459 S_MOV_B32 sDst(M0) src0(SGPR164) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR504) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR505) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR506) V_MOVRELD_B32 vDst(VGPR3) src0(VGPR507) V_MOVRELD_B32 vDst(VGPR4) src0(VGPR508) V_MOVRELD_B32 vDst(VGPR5) src0(VGPR509) V_MOVRELD_B32 vDst(VGPR6) src0(VGPR510) V_MOVRELD_B32 vDst(VGPR7) src0(VGPR511) V_MOVRELD_B32 vDst(VGPR8) src0(VGPR512) S_SETPC_B64 sDst(SGPR162) src0(SGPR162) # Void mainImage(vf4;vf2;(FloatVector4* fragColor, FloatVector2* fragCoord) Function: Void mainImage(vf4;vf2;(, FloatVector2 main.fragCoord) S_MOV_B64 sDst(SGPR170) src0(EXEC) # lb88 Label: lb88 # OpStore: : const463 >> param466 V_MOV_B32 vDst(VGPR551) src0(LITERAL_CONST) const: 0x42340000 V_MOV_B32 vDst(VGPR513) src0(VGPR551) # 468: OpLoad: FloatVector3: tmp468 << iResolution S_LOAD_DWORDX2_IMM offset(0) sBase(SGPR[0:1]) sDst(SGPR[172:173]) S_WAITCNT 0 S_LOAD_DWORD_IMM offset(8) sBase(SGPR[0:1]) sDst(SGPR174) S_WAITCNT 0 # 469: OpVectorShuffle: FloatVector2: tmp469 << tmp468, tmp468, 0, 1 V_MOV_B32 vDst(VGPR552) src0(SGPR172) V_MOV_B32 vDst(VGPR553) src0(SGPR173) # OpStore: : tmp469 >> param467 V_MOV_B32 vDst(VGPR514) src0(VGPR552) V_MOV_B32 vDst(VGPR515) src0(VGPR553) # 471: OpLoad: FloatVector2: tmp471 << fragCoord S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR13) const: 0x0 V_MOVRELS_B32 vDst(VGPR554) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR555) src0(VGPR1) # OpStore: : tmp471 >> param470 V_MOV_B32 vDst(VGPR516) src0(VGPR554) V_MOV_B32 vDst(VGPR517) src0(VGPR555) # 472: OpFunctionCall: FloatVector3: rayDirection(f1;vf2;vf2;(param466, param467, param470) S_ADD_U32 sDst(SGPR103) src0(LITERAL_CONST) src1(0) const: 0x201 # VGPR513 S_ADD_U32 sDst(SGPR104) src0(LITERAL_CONST) src1(0) const: 0x202 # VGPR[514:515] S_ADD_U32 sDst(SGPR105) src0(LITERAL_CONST) src1(0) const: 0x204 # VGPR[516:517] S_MOV_B64 sDst(SGPR176) src0(EXEC) S_MOV_B32 sDst(SGPR102) src0(LITERAL_CONST) const: 0x22c # VGPR[556:558] # Indirect branch to rayDirection(f1;vf2;vf2;: ??? S_GETPC_B64 sDst(SGPR100) src0(SGPR100) S_ADD_U32 sDst(SGPR100) src0(SGPR100) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR101) src0(SGPR101) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR100) src0(SGPR100) S_MOV_B64 sDst(EXEC) src0(SGPR176) # .lbl16 # 479: OpLoad: Float: tmp479 << iTime S_LOAD_DWORD_IMM offset(12) sBase(SGPR[0:1]) sDst(SGPR178) S_WAITCNT 0 # 480: OpFMul: Float: tmp480 << const476, tmp479 V_MOV_B32 vDst(VGPR559) src0(LITERAL_CONST) const: 0x3e4ccccd V_MOV_B32 vDst(VGPR560) src0(SGPR178) V_MUL_F32 vDst(VGPR561) src0(VGPR559) src1(VGPR560) // VOP2 # 481: OpExtInst(Sin): Float: tmp481 << tmp480 V_MUL_F32 vDst(VGPR562) src0(LITERAL_CONST) src1(VGPR561) // VOP2 const: 0x3e22f983 V_FRACT_F32 vDst(VGPR562) src0(VGPR562) V_SIN_F32 vDst(VGPR562) src0(VGPR562) # 482: OpFMul: Float: tmp482 << const475, tmp481 V_MOV_B32 vDst(VGPR563) src0(LITERAL_CONST) const: 0x40a00000 V_MUL_F32 vDst(VGPR564) src0(VGPR563) src1(VGPR562) // VOP2 # 484: OpCompositeConstruct: FloatVector3: tmp484 << const474, tmp482, const483 V_MOV_B32 vDst(VGPR568) src0(LITERAL_CONST) const: 0x41000000 V_MOV_B32 vDst(VGPR565) src0(VGPR568) V_MOV_B32 vDst(VGPR566) src0(VGPR564) V_MOV_B32 vDst(VGPR569) src0(LITERAL_CONST) const: 0x40e00000 V_MOV_B32 vDst(VGPR567) src0(VGPR569) # OpStore: : tmp484 >> param488 V_MOV_B32 vDst(VGPR518) src0(VGPR565) V_MOV_B32 vDst(VGPR519) src0(VGPR566) V_MOV_B32 vDst(VGPR520) src0(VGPR567) # OpStore: : const373 >> param490 V_MOV_B32 vDst(VGPR570) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR571) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR572) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR521) src0(VGPR570) V_MOV_B32 vDst(VGPR522) src0(VGPR571) V_MOV_B32 vDst(VGPR523) src0(VGPR572) # OpStore: : const487 >> param491 V_MOV_B32 vDst(VGPR573) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR574) src0(1_0_F) V_MOV_B32 vDst(VGPR575) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR524) src0(VGPR573) V_MOV_B32 vDst(VGPR525) src0(VGPR574) V_MOV_B32 vDst(VGPR526) src0(VGPR575) # 492: OpFunctionCall: FloatMatrix3x3: viewMatrix(vf3;vf3;vf3;(param488, param490, param491) S_ADD_U32 sDst(SGPR165) src0(LITERAL_CONST) src1(0) const: 0x206 # VGPR[518:520] S_ADD_U32 sDst(SGPR166) src0(LITERAL_CONST) src1(0) const: 0x209 # VGPR[521:523] S_ADD_U32 sDst(SGPR167) src0(LITERAL_CONST) src1(0) const: 0x20c # VGPR[524:526] S_MOV_B64 sDst(SGPR180) src0(EXEC) S_MOV_B32 sDst(SGPR164) src0(LITERAL_CONST) const: 0x240 # VGPR[576:584] # Indirect branch to viewMatrix(vf3;vf3;vf3;: ??? S_GETPC_B64 sDst(SGPR162) src0(SGPR162) S_ADD_U32 sDst(SGPR162) src0(SGPR162) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR163) src0(SGPR163) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR162) src0(SGPR162) S_MOV_B64 sDst(EXEC) src0(SGPR180) # .lbl17 # 496: OpMatrixTimesVector: FloatVector3: tmp496 << viewMatrix(vf3;vf3;vf3;, rayDirection(f1;vf2;vf2; V_MUL_F32 vDst(VGPR585) src0(VGPR576) src1(VGPR556) // VOP2 V_MUL_F32 vDst(VGPR586) src0(VGPR577) src1(VGPR556) // VOP2 V_MUL_F32 vDst(VGPR587) src0(VGPR578) src1(VGPR556) // VOP2 V_MAC_F32 vDst(VGPR585) src0(VGPR579) src1(VGPR557) // VOP2 V_MAC_F32 vDst(VGPR586) src0(VGPR580) src1(VGPR557) // VOP2 V_MAC_F32 vDst(VGPR587) src0(VGPR581) src1(VGPR557) // VOP2 V_MAC_F32 vDst(VGPR585) src0(VGPR582) src1(VGPR558) // VOP2 V_MAC_F32 vDst(VGPR586) src0(VGPR583) src1(VGPR558) // VOP2 V_MAC_F32 vDst(VGPR587) src0(VGPR584) src1(VGPR558) // VOP2 # OpStore: : tmp484 >> param499 V_MOV_B32 vDst(VGPR527) src0(VGPR565) V_MOV_B32 vDst(VGPR528) src0(VGPR566) V_MOV_B32 vDst(VGPR529) src0(VGPR567) # OpStore: : tmp496 >> param501 V_MOV_B32 vDst(VGPR530) src0(VGPR585) V_MOV_B32 vDst(VGPR531) src0(VGPR586) V_MOV_B32 vDst(VGPR532) src0(VGPR587) # OpStore: : const96 >> param503 V_MOV_B32 vDst(VGPR588) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR533) src0(VGPR588) # OpStore: : const498 >> param504 V_MOV_B32 vDst(VGPR589) src0(LITERAL_CONST) const: 0x42c80000 V_MOV_B32 vDst(VGPR534) src0(VGPR589) # 505: OpFunctionCall: Float: shortestDistanceToSurface(vf3;vf3;f1;f1;(param499, param501, param503, param504) S_ADD_U32 sDst(SGPR75) src0(LITERAL_CONST) src1(0) const: 0x20f # VGPR[527:529] S_ADD_U32 sDst(SGPR76) src0(LITERAL_CONST) src1(0) const: 0x212 # VGPR[530:532] S_ADD_U32 sDst(SGPR77) src0(LITERAL_CONST) src1(0) const: 0x215 # VGPR533 S_ADD_U32 sDst(SGPR78) src0(LITERAL_CONST) src1(0) const: 0x216 # VGPR534 S_MOV_B64 sDst(SGPR182) src0(EXEC) S_MOV_B32 sDst(SGPR74) src0(LITERAL_CONST) const: 0x24e # VGPR590 # Indirect branch to shortestDistanceToSurface(vf3;vf3;f1;f1;: ??? S_GETPC_B64 sDst(SGPR72) src0(SGPR72) S_ADD_U32 sDst(SGPR72) src0(SGPR72) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR73) src0(SGPR73) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR72) src0(SGPR72) S_MOV_B64 sDst(EXEC) src0(SGPR182) # .lbl18 # 508: OpFOrdGreaterThan: Bool: tmp508 << shortestDistanceToSurface(vf3;vf3;f1;f1;, const507 V_MOV_B32 vDst(VGPR591) src0(LITERAL_CONST) const: 0x42c7fff3 V_CMP_GT_F32 dst(SGPR184) src0(VGPR590) src1(VGPR591) // VOP3a # OpSelectionMerge: (merge: lb510) # CF Block: Merge: lb510 S_MOV_B64 sDst(SGPR186) src0(EXEC) # OpBranchConditional: if(tmp508) then branch to lb509, else branch to lb510 # CF Block: Cond Branch: true: lb509, false: lb510 S_AND_B64 sDst(EXEC) src0(SGPR184) src1(EXEC) S_CBRANCH_EXECZ ??? lb510 # lb509 Label: lb509 # OpStore: : const511 >> fragColor S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR12) const: 0x0 V_MOV_B32 vDst(VGPR592) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR593) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR594) src0(LITERAL_CONST) const: 0x00000000 V_MOV_B32 vDst(VGPR595) src0(LITERAL_CONST) const: 0x00000000 V_MOVRELD_B32 vDst(VGPR0) src0(VGPR592) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR593) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR594) V_MOVRELD_B32 vDst(VGPR3) src0(VGPR595) # OpReturn: S_ANDN2_B64 sDst(SGPR170) src0(SGPR170) src1(EXEC) # lb510 Label: lb510 # CF Merge Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR186) S_AND_B64 sDst(EXEC) src0(EXEC) src1(SGPR170) # 517: OpVectorTimesScalar: FloatVector3: tmp517 << tmp496, shortestDistanceToSurface(vf3;vf3;f1;f1; V_MUL_F32 vDst(VGPR596) src0(VGPR590) src1(VGPR585) // VOP2 V_MUL_F32 vDst(VGPR597) src0(VGPR590) src1(VGPR586) // VOP2 V_MUL_F32 vDst(VGPR598) src0(VGPR590) src1(VGPR587) // VOP2 # 518: OpFAdd: FloatVector3: tmp518 << tmp484, tmp517 V_ADD_F32 vDst(VGPR599) src0(VGPR565) src1(VGPR596) // VOP2 V_ADD_F32 vDst(VGPR600) src0(VGPR566) src1(VGPR597) // VOP2 V_ADD_F32 vDst(VGPR601) src0(VGPR567) src1(VGPR598) // VOP2 # OpStore: : const400 >> param527 V_MOV_B32 vDst(VGPR602) src0(0_5_F) V_MOV_B32 vDst(VGPR603) src0(0_5_F) V_MOV_B32 vDst(VGPR604) src0(0_5_F) V_MOV_B32 vDst(VGPR535) src0(VGPR602) V_MOV_B32 vDst(VGPR536) src0(VGPR603) V_MOV_B32 vDst(VGPR537) src0(VGPR604) # OpStore: : const400 >> param529 V_MOV_B32 vDst(VGPR605) src0(0_5_F) V_MOV_B32 vDst(VGPR606) src0(0_5_F) V_MOV_B32 vDst(VGPR607) src0(0_5_F) V_MOV_B32 vDst(VGPR538) src0(VGPR605) V_MOV_B32 vDst(VGPR539) src0(VGPR606) V_MOV_B32 vDst(VGPR540) src0(VGPR607) # OpStore: : const523 >> param531 V_MOV_B32 vDst(VGPR608) src0(1_0_F) V_MOV_B32 vDst(VGPR609) src0(1_0_F) V_MOV_B32 vDst(VGPR610) src0(1_0_F) V_MOV_B32 vDst(VGPR541) src0(VGPR608) V_MOV_B32 vDst(VGPR542) src0(VGPR609) V_MOV_B32 vDst(VGPR543) src0(VGPR610) # OpStore: : const525 >> param533 V_MOV_B32 vDst(VGPR611) src0(LITERAL_CONST) const: 0x41200000 V_MOV_B32 vDst(VGPR544) src0(VGPR611) # OpStore: : tmp518 >> param535 V_MOV_B32 vDst(VGPR545) src0(VGPR599) V_MOV_B32 vDst(VGPR546) src0(VGPR600) V_MOV_B32 vDst(VGPR547) src0(VGPR601) # OpStore: : tmp484 >> param537 V_MOV_B32 vDst(VGPR548) src0(VGPR565) V_MOV_B32 vDst(VGPR549) src0(VGPR566) V_MOV_B32 vDst(VGPR550) src0(VGPR567) # 539: OpFunctionCall: FloatVector3: phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;(param527, param529, param531, param533, param535, param537) S_ADD_U32 sDst(SGPR151) src0(LITERAL_CONST) src1(0) const: 0x217 # VGPR[535:537] S_ADD_U32 sDst(SGPR152) src0(LITERAL_CONST) src1(0) const: 0x21a # VGPR[538:540] S_ADD_U32 sDst(SGPR153) src0(LITERAL_CONST) src1(0) const: 0x21d # VGPR[541:543] S_ADD_U32 sDst(SGPR154) src0(LITERAL_CONST) src1(0) const: 0x220 # VGPR544 S_ADD_U32 sDst(SGPR155) src0(LITERAL_CONST) src1(0) const: 0x221 # VGPR[545:547] S_ADD_U32 sDst(SGPR156) src0(LITERAL_CONST) src1(0) const: 0x224 # VGPR[548:550] S_MOV_B64 sDst(SGPR188) src0(EXEC) S_MOV_B32 sDst(SGPR150) src0(LITERAL_CONST) const: 0x264 # VGPR[612:614] # Indirect branch to phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;: ??? S_GETPC_B64 sDst(SGPR148) src0(SGPR148) S_ADD_U32 sDst(SGPR148) src0(SGPR148) src1(LITERAL_CONST) const: 0x0 S_ADDC_U32 sDst(SGPR149) src0(SGPR149) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR148) src0(SGPR148) S_MOV_B64 sDst(EXEC) src0(SGPR188) # .lbl19 # 541: OpCompositeExtract: Float: tmp541 << phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;, 0 V_MOV_B32 vDst(VGPR615) src0(VGPR612) # 542: OpCompositeExtract: Float: tmp542 << phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;, 1 V_MOV_B32 vDst(VGPR616) src0(VGPR613) # 543: OpCompositeExtract: Float: tmp543 << phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;, 2 V_MOV_B32 vDst(VGPR617) src0(VGPR614) # 544: OpCompositeConstruct: FloatVector4: tmp544 << tmp541, tmp542, tmp543, const95 V_MOV_B32 vDst(VGPR618) src0(VGPR615) V_MOV_B32 vDst(VGPR619) src0(VGPR616) V_MOV_B32 vDst(VGPR620) src0(VGPR617) V_MOV_B32 vDst(VGPR621) src0(1_0_F) # OpStore: : tmp544 >> fragColor S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR12) const: 0x0 V_MOVRELD_B32 vDst(VGPR0) src0(VGPR618) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR619) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR620) V_MOVRELD_B32 vDst(VGPR3) src0(VGPR621) # OpReturn: S_SETPC_B64 sDst(SGPR10) src0(SGPR10) Performing register allocation... Register VGPR[24:27] contains scalar/constant data. Will try converting to SGPR. Register VGPR[28:29] contains scalar/constant data. Will try converting to SGPR. Register VGPR42 contains scalar/constant data. Will try converting to SGPR. Register VGPR46 contains scalar/constant data. Will try converting to SGPR. Register VGPR47 contains scalar/constant data. Will try converting to SGPR. Register VGPR48 contains scalar/constant data. Will try converting to SGPR. Register VGPR49 contains scalar/constant data. Will try converting to SGPR. Register VGPR50 contains scalar/constant data. Will try converting to SGPR. Register VGPR51 contains scalar/constant data. Will try converting to SGPR. Register VGPR[58:60] contains scalar/constant data. Will try converting to SGPR. Register VGPR[92:94] contains scalar/constant data. Will try converting to SGPR. Register VGPR[92:94] can't be converted to SGPR, because the following instruction can't be converted: V_RCP_F32 vDst(VGPR95) src0(VGPR92) Register VGPR106 contains scalar/constant data. Will try converting to SGPR. Register VGPR106 can't be converted to SGPR, because the following instruction can't be converted: V_MIN_F32 vDst(VGPR107) src0(VGPR105) src1(VGPR106) // VOP2 Register VGPR[108:110] contains scalar/constant data. Will try converting to SGPR. Register VGPR[108:110] can't be converted to SGPR, because the following instruction can't be converted: V_MAX_F32 vDst(VGPR114) src0(VGPR98) src1(VGPR108) // VOP2 Register VGPR111 contains scalar/constant data. Will try converting to SGPR. Register VGPR112 contains scalar/constant data. Will try converting to SGPR. Register VGPR113 contains scalar/constant data. Will try converting to SGPR. Register VGPR148 contains scalar/constant data. Will try converting to SGPR. Register VGPR148 can't be converted to SGPR, because the following instruction can't be converted: V_MUL_F32 vDst(VGPR149) src0(VGPR147) src1(VGPR148) // VOP2 Register VGPR[162:164] contains scalar/constant data. Will try converting to SGPR. Register VGPR169 contains scalar/constant data. Will try converting to SGPR. Register VGPR174 contains scalar/constant data. Will try converting to SGPR. Register VGPR179 contains scalar/constant data. Will try converting to SGPR. Register VGPR184 contains scalar/constant data. Will try converting to SGPR. Register VGPR198 contains scalar/constant data. Will try converting to SGPR. Register VGPR202 contains scalar/constant data. Will try converting to SGPR. Register VGPR203 contains scalar/constant data. Will try converting to SGPR. Register VGPR[209:210] contains scalar/constant data. Will try converting to SGPR. Register VGPR[209:210] can't be converted to SGPR, because the following instruction can't be converted: V_RCP_F32 vDst(VGPR211) src0(VGPR209) Register VGPR218 contains scalar/constant data. Will try converting to SGPR. Register VGPR218 can't be converted to SGPR, because the following instruction can't be converted: V_MUL_F32 vDst(VGPR217) src0(VGPR216) src1(VGPR218) // VOP2 Register VGPR219 contains scalar/constant data. Will try converting to SGPR. Register VGPR219 can't be converted to SGPR, because the following instruction can't be converted: V_RCP_F32 vDst(VGPR220) src0(VGPR219) Register VGPR254 contains scalar/constant data. Will try converting to SGPR. Register VGPR254 can't be converted to SGPR, because the following instruction can't be converted: V_ADD_F32 vDst(VGPR255) src0(VGPR253) src1(VGPR254) // VOP2 Register VGPR263 contains scalar/constant data. Will try converting to SGPR. Register VGPR263 can't be converted to SGPR, because the following instruction can't be converted: V_SUB_F32 vDst(VGPR264) src0(VGPR262) src1(VGPR263) // VOP2 Register VGPR274 contains scalar/constant data. Will try converting to SGPR. Register VGPR274 can't be converted to SGPR, because the following instruction can't be converted: V_ADD_F32 vDst(VGPR275) src0(VGPR273) src1(VGPR274) // VOP2 Register VGPR283 contains scalar/constant data. Will try converting to SGPR. Register VGPR283 can't be converted to SGPR, because the following instruction can't be converted: V_SUB_F32 vDst(VGPR284) src0(VGPR282) src1(VGPR283) // VOP2 Register VGPR294 contains scalar/constant data. Will try converting to SGPR. Register VGPR294 can't be converted to SGPR, because the following instruction can't be converted: V_ADD_F32 vDst(VGPR295) src0(VGPR293) src1(VGPR294) // VOP2 Register VGPR303 contains scalar/constant data. Will try converting to SGPR. Register VGPR303 can't be converted to SGPR, because the following instruction can't be converted: V_SUB_F32 vDst(VGPR304) src0(VGPR302) src1(VGPR303) // VOP2 Register VGPR365 contains scalar/constant data. Will try converting to SGPR. Register VGPR[366:368] contains scalar/constant data. Will try converting to SGPR. Register VGPR369 contains scalar/constant data. Will try converting to SGPR. Register VGPR[430:432] contains scalar/constant data. Will try converting to SGPR. Register VGPR[430:432] can't be converted to SGPR, because the following instruction can't be converted: V_MUL_F32 vDst(VGPR433) src0(VGPR430) src1(VGPR427) // VOP2 Register VGPR[449:451] contains scalar/constant data. Will try converting to SGPR. Register VGPR[452:454] contains scalar/constant data. Will try converting to SGPR. Register VGPR551 contains scalar/constant data. Will try converting to SGPR. Register VGPR[552:553] contains scalar/constant data. Will try converting to SGPR. Register VGPR559 contains scalar/constant data. Will try converting to SGPR. Register VGPR559 can't be converted to SGPR, because the following instruction can't be converted: V_MUL_F32 vDst(VGPR561) src0(VGPR559) src1(VGPR560) // VOP2 Register VGPR560 contains scalar/constant data. Will try converting to SGPR. Register VGPR560 can't be converted to SGPR, because the following instruction can't be converted: V_MUL_F32 vDst(VGPR561) src0(VGPR559) src1(VGPR560) // VOP2 Register VGPR561 contains scalar/constant data. Will try converting to SGPR. Register VGPR561 can't be converted to SGPR, because the following instruction can't be converted: V_MUL_F32 vDst(VGPR561) src0(VGPR559) src1(VGPR560) // VOP2 Register VGPR562 contains scalar/constant data. Will try converting to SGPR. Register VGPR562 can't be converted to SGPR, because the following instruction can't be converted: V_MUL_F32 vDst(VGPR562) src0(LITERAL_CONST) src1(VGPR561) // VOP2 const: 0x3e22f983 Register VGPR563 contains scalar/constant data. Will try converting to SGPR. Register VGPR563 can't be converted to SGPR, because the following instruction can't be converted: V_MUL_F32 vDst(VGPR564) src0(VGPR563) src1(VGPR562) // VOP2 Register VGPR564 contains scalar/constant data. Will try converting to SGPR. Register VGPR564 can't be converted to SGPR, because the following instruction can't be converted: V_MUL_F32 vDst(VGPR564) src0(VGPR563) src1(VGPR562) // VOP2 Register VGPR[565:567] contains scalar/constant data. Will try converting to SGPR. Register VGPR[565:567] can't be converted to SGPR, because the following instruction can't be converted: V_ADD_F32 vDst(VGPR599) src0(VGPR565) src1(VGPR596) // VOP2 Register VGPR568 contains scalar/constant data. Will try converting to SGPR. Register VGPR569 contains scalar/constant data. Will try converting to SGPR. Register VGPR[570:572] contains scalar/constant data. Will try converting to SGPR. Register VGPR[573:575] contains scalar/constant data. Will try converting to SGPR. Register VGPR588 contains scalar/constant data. Will try converting to SGPR. Register VGPR589 contains scalar/constant data. Will try converting to SGPR. Register VGPR591 contains scalar/constant data. Will try converting to SGPR. Register VGPR[592:595] contains scalar/constant data. Will try converting to SGPR. Register VGPR[602:604] contains scalar/constant data. Will try converting to SGPR. Register VGPR[605:607] contains scalar/constant data. Will try converting to SGPR. Register VGPR[608:610] contains scalar/constant data. Will try converting to SGPR. Register VGPR611 contains scalar/constant data. Will try converting to SGPR. Register VGPR42 contains scalar/constant data. Will try converting to SGPR. Register VGPR46 contains scalar/constant data. Will try converting to SGPR. Register VGPR47 contains scalar/constant data. Will try converting to SGPR. Register VGPR48 contains scalar/constant data. Will try converting to SGPR. Register VGPR49 contains scalar/constant data. Will try converting to SGPR. Register VGPR50 contains scalar/constant data. Will try converting to SGPR. Register VGPR51 contains scalar/constant data. Will try converting to SGPR. Register VGPR[58:60] contains scalar/constant data. Will try converting to SGPR. Register VGPR111 contains scalar/constant data. Will try converting to SGPR. Register VGPR112 contains scalar/constant data. Will try converting to SGPR. Register VGPR113 contains scalar/constant data. Will try converting to SGPR. Register VGPR[162:164] contains scalar/constant data. Will try converting to SGPR. Register VGPR169 contains scalar/constant data. Will try converting to SGPR. Register VGPR174 contains scalar/constant data. Will try converting to SGPR. Register VGPR179 contains scalar/constant data. Will try converting to SGPR. Register VGPR184 contains scalar/constant data. Will try converting to SGPR. Register VGPR198 contains scalar/constant data. Will try converting to SGPR. Register VGPR202 contains scalar/constant data. Will try converting to SGPR. Register VGPR203 contains scalar/constant data. Will try converting to SGPR. Register VGPR365 contains scalar/constant data. Will try converting to SGPR. Register VGPR[366:368] contains scalar/constant data. Will try converting to SGPR. Register VGPR369 contains scalar/constant data. Will try converting to SGPR. Register VGPR[449:451] contains scalar/constant data. Will try converting to SGPR. Register VGPR[452:454] contains scalar/constant data. Will try converting to SGPR. Register VGPR551 contains scalar/constant data. Will try converting to SGPR. Register VGPR[552:553] contains scalar/constant data. Will try converting to SGPR. Register VGPR568 contains scalar/constant data. Will try converting to SGPR. Register VGPR569 contains scalar/constant data. Will try converting to SGPR. Register VGPR[570:572] contains scalar/constant data. Will try converting to SGPR. Register VGPR[573:575] contains scalar/constant data. Will try converting to SGPR. Register VGPR588 contains scalar/constant data. Will try converting to SGPR. Register VGPR589 contains scalar/constant data. Will try converting to SGPR. Register VGPR591 contains scalar/constant data. Will try converting to SGPR. Register VGPR[592:595] contains scalar/constant data. Will try converting to SGPR. Register VGPR[602:604] contains scalar/constant data. Will try converting to SGPR. Register VGPR[605:607] contains scalar/constant data. Will try converting to SGPR. Register VGPR[608:610] contains scalar/constant data. Will try converting to SGPR. Register VGPR611 contains scalar/constant data. Will try converting to SGPR. No need to convert VGPR184 because it's only used for VGPR comparisons. No need to convert VGPR198 because it's only used for VGPR comparisons. No need to convert VGPR365 because it's only used for VGPR comparisons. No need to convert VGPR369 because it's only used for VGPR comparisons. No need to convert VGPR591 because it's only used for VGPR comparisons. Converting VGPR42 to SGPR, and adjusting instructions. Converting VGPR46 to SGPR, and adjusting instructions. Converting VGPR47 to SGPR, and adjusting instructions. Converting VGPR48 to SGPR, and adjusting instructions. Converting VGPR49 to SGPR, and adjusting instructions. Converting VGPR50 to SGPR, and adjusting instructions. Converting VGPR51 to SGPR, and adjusting instructions. Converting VGPR[58:60] to SGPR, and adjusting instructions. Converting VGPR111 to SGPR, and adjusting instructions. Converting VGPR112 to SGPR, and adjusting instructions. Converting VGPR113 to SGPR, and adjusting instructions. Converting VGPR[162:164] to SGPR, and adjusting instructions. Converting VGPR169 to SGPR, and adjusting instructions. Converting VGPR174 to SGPR, and adjusting instructions. Converting VGPR179 to SGPR, and adjusting instructions. Converting VGPR202 to SGPR, and adjusting instructions. Converting VGPR203 to SGPR, and adjusting instructions. Converting VGPR[366:368] to SGPR, and adjusting instructions. Converting VGPR[449:451] to SGPR, and adjusting instructions. Converting VGPR[452:454] to SGPR, and adjusting instructions. Converting VGPR551 to SGPR, and adjusting instructions. Converting VGPR[552:553] to SGPR, and adjusting instructions. Converting VGPR568 to SGPR, and adjusting instructions. Converting VGPR569 to SGPR, and adjusting instructions. Converting VGPR[570:572] to SGPR, and adjusting instructions. Converting VGPR[573:575] to SGPR, and adjusting instructions. Converting VGPR588 to SGPR, and adjusting instructions. Converting VGPR589 to SGPR, and adjusting instructions. Converting VGPR[592:595] to SGPR, and adjusting instructions. Converting VGPR[602:604] to SGPR, and adjusting instructions. Converting VGPR[605:607] to SGPR, and adjusting instructions. Converting VGPR[608:610] to SGPR, and adjusting instructions. Converting VGPR611 to SGPR, and adjusting instructions. VGPR=>SGPR conversions done. Register lifetime ranges REG NAME START END SGPR[0:1] 0 1496 fixed SGPR2 0 1496 fixed SGPR3 0 1496 fixed SGPR[4:5] 0 1496 fixed SGPR[6:7] 0 1496 fixed SGPR8 0 1496 fixed SGPR[10:11] 0 1496 keep-active SGPR12 0 1496 keep-active SGPR13 0 1496 keep-active SGPR[14:15] 0 1496 keep-active SGPR[16:17] 0 1496 keep-active SGPR18 111 280 SGPR19 43 277 SGPR[20:21] 39 39 SGPR[22:23] 0 1496 keep-active SGPR24 0 1496 keep-active SGPR25 0 1496 keep-active SGPR26 0 1496 keep-active SGPR[28:29] 124 124 SGPR[30:31] 0 1496 keep-active SGPR32 0 1496 keep-active SGPR33 0 1496 keep-active SGPR34 0 1496 keep-active SGPR[36:37] 141 141 SGPR[38:39] 0 1496 keep-active SGPR40 0 1496 keep-active SGPR41 0 1496 keep-active SGPR42 0 1496 keep-active SGPR[44:45] 160 160 SGPR[46:47] 0 1496 keep-active SGPR48 0 1496 keep-active SGPR49 0 1496 keep-active SGPR50 0 1496 keep-active SGPR[52:53] 235 235 SGPR[54:55] 0 1496 keep-active SGPR56 0 1496 keep-active SGPR57 0 1496 keep-active SGPR[58:59] 259 259 SGPR[60:61] 0 1496 keep-active SGPR[62:63] 0 1496 keep-active SGPR[64:65] 0 1496 keep-active SGPR[66:67] 0 1496 keep-active SGPR[68:69] 0 1496 keep-active SGPR[70:71] 0 1496 keep-active SGPR[72:73] 0 1496 keep-active SGPR74 0 1496 keep-active SGPR75 0 1496 keep-active SGPR76 0 1496 keep-active SGPR77 0 1496 keep-active SGPR78 0 1496 keep-active SGPR[80:81] 0 1496 keep-active SGPR[82:83] 0 1496 keep-active SGPR[84:85] 0 1496 keep-active SGPR[86:87] 0 1496 keep-active SGPR[88:89] 421 424 SGPR[90:91] 0 1496 keep-active SGPR[92:93] 464 469 SGPR[94:95] 466 483 SGPR[96:97] 495 500 SGPR[98:99] 497 516 SGPR[100:101] 0 1496 keep-active SGPR102 0 1496 keep-active SGPR103 0 1496 keep-active SGPR104 0 1496 keep-active SGPR105 0 1496 keep-active SGPR[106:107] 545 545 SGPR[108:109] 0 1496 keep-active SGPR110 835 858 SGPR111 0 1496 keep-active SGPR[112:113] 621 621 SGPR[114:115] 0 1496 keep-active SGPR[116:117] 0 1496 keep-active SGPR[118:119] 0 1496 keep-active SGPR[120:121] 0 1496 keep-active SGPR[122:123] 0 1496 keep-active SGPR[124:125] 0 1496 keep-active SGPR[126:127] 0 1496 keep-active SGPR128 953 1139 SGPR129 980 1124 SGPR130 1018 1126 SGPR131 1023 1128 SGPR132 0 1496 keep-active SGPR133 886 1132 SGPR134 864 1134 SGPR135 975 1136 SGPR[136:137] 0 1496 keep-active SGPR[138:139] 0 1496 keep-active SGPR[140:141] 940 945 SGPR[142:143] 942 961 SGPR[144:145] 965 970 SGPR[146:147] 967 1001 SGPR[148:149] 0 1496 keep-active SGPR150 0 1496 keep-active SGPR151 0 1496 keep-active SGPR152 0 1496 keep-active SGPR153 0 1496 keep-active SGPR154 0 1496 keep-active SGPR155 0 1496 keep-active SGPR156 0 1496 keep-active SGPR[158:159] 1049 1049 SGPR[160:161] 0 1496 keep-active SGPR[162:163] 0 1496 keep-active SGPR164 0 1496 keep-active SGPR165 0 1496 keep-active SGPR166 0 1496 keep-active SGPR167 0 1496 keep-active SGPR[168:169] 1162 1162 SGPR[170:171] 0 1496 keep-active SGPR[172:174] 1271 1277 SGPR[176:177] 0 1496 keep-active SGPR178 1302 1306 SGPR[180:181] 0 1496 keep-active SGPR[182:183] 0 1496 keep-active SGPR[184:185] 1393 1398 SGPR[186:187] 1395 1417 SGPR[188:189] 0 1496 keep-active SGPR190 59 60 SGPR191 64 65 SGPR192 69 89 SGPR193 72 90 SGPR194 71 72 SGPR195 75 91 SGPR196 74 75 SGPR[197:199] 89 103 SGPR200 212 213 SGPR201 214 215 SGPR202 216 217 SGPR[203:205] 300 305 SGPR206 327 328 SGPR207 350 351 SGPR208 0 1496 keep-active SGPR209 525 526 SGPR210 526 528 SGPR[211:213] 950 956 SGPR[214:216] 1110 1115 SGPR[217:219] 1117 1122 SGPR220 1268 1269 SGPR[221:222] 1276 1280 SGPR223 1316 1317 SGPR224 1319 1320 SGPR[225:227] 1326 1331 SGPR[228:230] 1333 1338 SGPR231 1371 1372 SGPR232 1374 1375 SGPR[233:236] 1404 1411 SGPR[237:239] 1428 1433 SGPR[240:242] 1435 1440 SGPR[243:245] 1442 1447 SGPR246 1449 1450 VGPR[0:1] 0 1496 fixed VGPR[0:1] 0 1496 fixed VGPR[4:5] 0 1496 fixed VGPR[6:7] 0 1496 fixed VGPR[8:9] 0 1496 fixed VGPR[10:11] 0 1496 fixed VGPR12 0 1496 fixed VGPR[2:5] 0 1496 fixed VGPR17 0 1496 fixed VGPR[18:21] 0 1496 keep-active VGPR[22:23] 0 1496 keep-active VGPR[24:27] 6 12 VGPR[28:29] 11 15 VGPR[30:33] 27 34 VGPR34 44 46 VGPR35 46 67 VGPR36 51 53 VGPR37 53 66 VGPR38 57 62 VGPR[39:41] 60 81 VGPR[43:45] 65 87 VGPR52 77 93 VGPR53 79 94 VGPR54 81 95 VGPR55 83 97 VGPR56 85 98 VGPR57 87 99 VGPR[61:63] 93 106 VGPR[64:66] 97 109 VGPR[67:75] 101 120 VGPR76 129 134 VGPR77 132 134 VGPR78 134 137 VGPR79 146 153 VGPR80 149 151 VGPR81 151 153 VGPR82 153 156 VGPR[83:85] 165 171 VGPR[86:88] 169 194 VGPR[89:91] 174 190 VGPR[92:94] 178 190 VGPR[95:97] 182 194 VGPR[98:100] 192 221 VGPR101 197 207 VGPR102 200 205 VGPR103 203 205 VGPR104 205 207 VGPR105 207 210 VGPR106 209 210 VGPR107 210 228 VGPR[108:110] 213 221 VGPR[114:116] 219 225 VGPR117 223 228 VGPR118 228 231 VGPR[119:121] 240 246 VGPR122 244 252 VGPR123 250 252 VGPR124 252 255 VGPR125 0 1496 keep-active VGPR[126:128] 0 1496 keep-active VGPR[129:131] 0 1496 keep-active VGPR[132:134] 0 1496 keep-active VGPR135 0 1496 keep-active VGPR[136:138] 0 1496 keep-active VGPR139 0 1496 keep-active VGPR140 0 1496 keep-active VGPR141 0 1496 keep-active VGPR142 0 1496 keep-active VGPR143 0 1496 keep-active VGPR[144:146] 0 1496 keep-active VGPR147 270 273 VGPR148 272 273 VGPR149 273 275 VGPR[150:158] 0 1496 keep-active VGPR[159:161] 286 298 VGPR165 0 1496 keep-active VGPR[166:168] 319 325 VGPR170 0 1496 keep-active VGPR[171:173] 342 348 VGPR175 0 1496 keep-active VGPR176 0 1496 keep-active VGPR177 0 1496 keep-active VGPR178 0 1496 keep-active VGPR[180:182] 0 1496 keep-active VGPR183 404 406 VGPR184 420 421 VGPR[185:187] 432 448 VGPR[188:190] 438 444 VGPR[191:193] 442 448 VGPR[194:196] 446 452 VGPR197 0 1496 keep-active VGPR198 463 464 VGPR199 487 489 VGPR200 493 495 VGPR201 506 509 VGPR204 538 541 VGPR[205:206] 550 568 VGPR[207:208] 554 565 VGPR[209:210] 557 565 VGPR[211:212] 560 568 VGPR[213:214] 567 600 VGPR215 572 594 VGPR216 575 578 VGPR217 578 583 VGPR218 577 578 VGPR219 580 583 VGPR220 581 585 VGPR221 585 590 VGPR222 586 590 VGPR223 588 594 VGPR224 592 596 VGPR225 596 604 VGPR226 598 602 VGPR227 600 603 VGPR[228:230] 602 612 VGPR231 606 612 VGPR[232:234] 610 617 VGPR[235:237] 0 1496 keep-active VGPR[238:240] 0 1496 keep-active VGPR[241:243] 0 1496 keep-active VGPR[244:246] 0 1496 keep-active VGPR[247:249] 0 1496 keep-active VGPR[250:252] 0 1496 keep-active VGPR253 627 630 VGPR254 629 630 VGPR255 630 640 VGPR256 634 641 VGPR257 638 642 VGPR[258:260] 640 646 VGPR261 0 1496 keep-active VGPR262 659 662 VGPR263 661 662 VGPR264 662 672 VGPR265 666 673 VGPR266 670 674 VGPR[267:269] 672 678 VGPR270 0 1496 keep-active VGPR271 0 1496 keep-active VGPR272 693 706 VGPR273 697 700 VGPR274 699 700 VGPR275 700 707 VGPR276 704 708 VGPR[277:279] 706 712 VGPR280 0 1496 keep-active VGPR281 725 738 VGPR282 729 732 VGPR283 731 732 VGPR284 732 739 VGPR285 736 740 VGPR[286:288] 738 744 VGPR289 0 1496 keep-active VGPR290 0 1496 keep-active VGPR291 759 772 VGPR292 763 773 VGPR293 767 770 VGPR294 769 770 VGPR295 770 774 VGPR[296:298] 772 778 VGPR299 0 1496 keep-active VGPR300 791 804 VGPR301 795 805 VGPR302 799 802 VGPR303 801 802 VGPR304 802 806 VGPR[305:307] 804 810 VGPR308 0 1496 keep-active VGPR309 821 825 VGPR[310:312] 823 833 VGPR313 827 833 VGPR[314:316] 831 838 VGPR[317:319] 0 1496 keep-active VGPR[320:322] 847 853 VGPR[323:325] 0 1496 keep-active VGPR[326:328] 865 876 VGPR[329:331] 870 876 VGPR[332:334] 874 884 VGPR335 878 884 VGPR[336:338] 882 933 VGPR[339:341] 887 898 VGPR[342:344] 892 898 VGPR[345:347] 896 906 VGPR348 900 906 VGPR[349:351] 904 937 VGPR[352:354] 908 921 VGPR[355:357] 916 929 VGPR358 912 918 VGPR359 923 929 VGPR[360:362] 927 937 VGPR363 931 1016 VGPR364 935 1026 VGPR365 939 940 VGPR369 964 965 VGPR[370:372] 976 991 VGPR[373:375] 981 987 VGPR[376:378] 985 991 VGPR[379:381] 989 996 VGPR[382:384] 1005 1040 VGPR[385:387] 1010 1016 VGPR[388:390] 1014 1036 VGPR[391:393] 1019 1032 VGPR394 1024 1027 VGPR395 1026 1032 VGPR[396:398] 1030 1036 VGPR[399:401] 1034 1040 VGPR[402:404] 1038 1045 VGPR[405:407] 0 1496 keep-active VGPR[408:410] 0 1496 keep-active VGPR[411:413] 0 1496 keep-active VGPR414 0 1496 keep-active VGPR[415:417] 0 1496 keep-active VGPR[418:420] 0 1496 keep-active VGPR[421:423] 0 1496 keep-active VGPR[424:426] 0 1496 keep-active VGPR[427:429] 1054 1063 VGPR[430:432] 1058 1063 VGPR[433:435] 1061 1067 VGPR[436:438] 1070 1076 VGPR[439:441] 1079 1085 VGPR442 1088 1090 VGPR[443:445] 1093 1099 VGPR[446:448] 1102 1108 VGPR[455:457] 0 1496 keep-active VGPR[458:460] 1146 1152 VGPR[461:463] 1167 1178 VGPR[464:466] 1172 1178 VGPR[467:469] 1176 1186 VGPR470 1180 1186 VGPR[471:473] 1184 1209 VGPR[474:476] 1189 1198 VGPR[477:479] 1193 1215 VGPR[480:482] 1200 1221 VGPR[483:485] 1207 1227 VGPR486 1211 1229 VGPR487 1213 1230 VGPR488 1215 1231 VGPR489 1217 1233 VGPR490 1219 1234 VGPR491 1221 1235 VGPR492 1223 1237 VGPR493 1225 1238 VGPR494 1227 1239 VGPR[495:497] 1229 1243 VGPR[498:500] 1233 1246 VGPR[501:503] 1237 1249 VGPR[504:512] 1241 1260 VGPR513 0 1496 keep-active VGPR[514:515] 0 1496 keep-active VGPR[516:517] 0 1496 keep-active VGPR[518:520] 0 1496 keep-active VGPR[521:523] 0 1496 keep-active VGPR[524:526] 0 1496 keep-active VGPR[527:529] 0 1496 keep-active VGPR[530:532] 0 1496 keep-active VGPR533 0 1496 keep-active VGPR534 0 1496 keep-active VGPR[535:537] 0 1496 keep-active VGPR[538:540] 0 1496 keep-active VGPR[541:543] 0 1496 keep-active VGPR544 0 1496 keep-active VGPR[545:547] 0 1496 keep-active VGPR[548:550] 0 1496 keep-active VGPR[554:555] 1283 1287 VGPR[556:558] 0 1496 keep-active VGPR559 1305 1307 VGPR560 1306 1307 VGPR561 1307 1309 VGPR562 1309 1314 VGPR563 1313 1314 VGPR564 1314 1318 VGPR[565:567] 0 1496 keep-active VGPR[576:584] 0 1496 keep-active VGPR[585:587] 0 1496 keep-active VGPR590 0 1496 keep-active VGPR591 1392 1393 VGPR[596:598] 1420 1426 VGPR[599:601] 1424 1454 VGPR[612:614] 0 1496 keep-active VGPR615 1479 1485 VGPR616 1481 1486 VGPR617 1483 1487 VGPR[618:621] 1485 1494 Register final registers REG NAME START END SGPR[0:1] 0 1496 fixed SGPR2 0 1496 fixed SGPR3 0 1496 fixed SGPR[4:5] 0 1496 fixed SGPR[6:7] 0 1496 fixed SGPR8 0 1496 fixed SGPR9 0 1496 keep-active SGPR[10:11] 0 1496 keep-active SGPR12 0 1496 keep-active SGPR13 0 1496 keep-active SGPR[14:15] 0 1496 keep-active SGPR[16:17] 0 1496 keep-active SGPR[18:19] 0 1496 keep-active SGPR20 0 1496 keep-active SGPR21 0 1496 keep-active SGPR[22:23] 0 1496 keep-active SGPR24 0 1496 keep-active SGPR25 0 1496 keep-active SGPR26 0 1496 keep-active SGPR27 0 1496 keep-active SGPR[28:29] 0 1496 keep-active SGPR30 0 1496 keep-active SGPR31 0 1496 keep-active SGPR[32:33] 0 1496 keep-active SGPR34 0 1496 keep-active SGPR35 0 1496 keep-active SGPR36 0 1496 keep-active SGPR37 0 1496 keep-active SGPR[38:39] 0 1496 keep-active SGPR40 0 1496 keep-active SGPR41 0 1496 keep-active SGPR[42:43] 0 1496 keep-active SGPR[44:45] 0 1496 keep-active SGPR[46:47] 0 1496 keep-active SGPR[48:49] 0 1496 keep-active SGPR[50:51] 0 1496 keep-active SGPR[52:53] 0 1496 keep-active SGPR[54:55] 0 1496 keep-active SGPR56 0 1496 keep-active SGPR57 0 1496 keep-active SGPR58 0 1496 keep-active SGPR59 0 1496 keep-active SGPR[60:61] 0 1496 keep-active SGPR[62:63] 0 1496 keep-active SGPR[64:65] 0 1496 keep-active SGPR[66:67] 0 1496 keep-active SGPR[68:69] 0 1496 keep-active SGPR[70:71] 0 1496 keep-active SGPR72 0 1496 keep-active SGPR73 0 1496 keep-active SGPR74 0 1496 keep-active SGPR75 0 1496 keep-active SGPR[76:77] 0 1496 keep-active SGPR78 0 1496 keep-active SGPR79 0 1496 keep-active SGPR[80:81] 0 1496 keep-active SGPR[82:83] 0 1496 keep-active SGPR[84:85] 0 1496 keep-active SGPR[86:87] 0 1496 keep-active SGPR[88:89] 0 1496 keep-active SGPR[90:91] 0 1496 keep-active SGPR[92:93] 0 1496 keep-active SGPR[94:95] 0 1496 keep-active SGPR[96:97] 0 1496 keep-active SGPR[98:99] 0 1496 keep-active SGPR100 0 1496 keep-active SGPR101 0 1496 keep-active SGPR102 0 1496 keep-active SGPR103 0 1496 keep-active SGPR104 0 1496 keep-active SGPR105 0 1496 keep-active SGPR106 0 1496 keep-active SGPR107 0 1496 keep-active SGPR[108:109] 0 1496 keep-active SGPR[110:111] 0 1496 keep-active SGPR112 0 1496 keep-active SGPR113 0 1496 keep-active SGPR114 0 1496 keep-active SGPR115 0 1496 keep-active SGPR[116:117] 0 1496 keep-active SGPR[118:119] 0 1496 keep-active SGPR[120:121] 0 1496 keep-active SGPR[122:123] 0 1496 keep-active SGPR[124:125] 0 1496 keep-active SGPR[126:127] 39 39 SGPR126 43 277 SGPR126 327 328 SGPR126 350 351 SGPR[126:127] 421 424 SGPR[126:127] 464 469 SGPR[126:127] 495 500 SGPR126 525 526 SGPR[126:127] 621 621 SGPR126 835 858 SGPR126 864 1134 SGPR126 1268 1269 SGPR[126:128] 1271 1277 SGPR126 1302 1306 SGPR126 1316 1317 SGPR126 1319 1320 SGPR[126:128] 1326 1331 SGPR[126:128] 1333 1338 SGPR126 1371 1372 SGPR126 1374 1375 SGPR[126:127] 1393 1398 SGPR[126:128] 1428 1433 SGPR[126:128] 1435 1440 SGPR[126:128] 1442 1447 SGPR126 1449 1450 SGPR127 59 60 SGPR127 64 65 SGPR127 69 89 SGPR127 111 280 SGPR127 526 528 SGPR127 886 1132 SGPR128 71 72 SGPR128 74 75 SGPR[128:129] 124 124 SGPR[128:129] 141 141 SGPR[128:129] 160 160 SGPR128 212 213 SGPR128 214 215 SGPR128 216 217 SGPR[128:129] 235 235 SGPR[128:129] 259 259 SGPR[128:130] 300 305 SGPR[128:129] 466 483 SGPR[128:129] 497 516 SGPR[128:129] 545 545 SGPR[128:129] 940 945 SGPR128 953 1139 SGPR[128:129] 1395 1417 SGPR129 72 90 SGPR129 975 1136 SGPR[129:130] 1276 1280 SGPR130 75 91 SGPR[130:131] 942 961 SGPR[130:131] 965 970 SGPR130 980 1124 SGPR[130:133] 1404 1411 SGPR[131:133] 89 103 SGPR131 1018 1126 SGPR[132:134] 950 956 SGPR[132:133] 967 1001 SGPR132 1023 1128 SGPR[133:135] 1110 1115 SGPR[133:135] 1117 1122 SGPR[134:135] 1049 1049 SGPR[136:137] 1162 1162 VGPR[0:1] 0 1496 fixed VGPR[0:1] 0 1496 fixed VGPR[2:5] 0 1496 fixed VGPR[4:5] 0 1496 fixed VGPR[6:7] 0 1496 fixed VGPR[8:9] 0 1496 fixed VGPR[10:11] 0 1496 fixed VGPR12 0 1496 fixed VGPR[13:16] 0 1496 keep-active VGPR17 0 1496 fixed VGPR[18:19] 0 1496 keep-active VGPR20 0 1496 keep-active VGPR[21:23] 0 1496 keep-active VGPR[24:26] 0 1496 keep-active VGPR[27:29] 0 1496 keep-active VGPR30 0 1496 keep-active VGPR[31:33] 0 1496 keep-active VGPR34 0 1496 keep-active VGPR35 0 1496 keep-active VGPR36 0 1496 keep-active VGPR37 0 1496 keep-active VGPR38 0 1496 keep-active VGPR[39:41] 0 1496 keep-active VGPR[42:50] 0 1496 keep-active VGPR51 0 1496 keep-active VGPR52 0 1496 keep-active VGPR53 0 1496 keep-active VGPR54 0 1496 keep-active VGPR55 0 1496 keep-active VGPR56 0 1496 keep-active VGPR[57:59] 0 1496 keep-active VGPR60 0 1496 keep-active VGPR[61:63] 0 1496 keep-active VGPR[64:66] 0 1496 keep-active VGPR[67:69] 0 1496 keep-active VGPR[70:72] 0 1496 keep-active VGPR[73:75] 0 1496 keep-active VGPR[76:78] 0 1496 keep-active VGPR79 0 1496 keep-active VGPR80 0 1496 keep-active VGPR81 0 1496 keep-active VGPR82 0 1496 keep-active VGPR83 0 1496 keep-active VGPR84 0 1496 keep-active VGPR85 0 1496 keep-active VGPR86 0 1496 keep-active VGPR[87:89] 0 1496 keep-active VGPR[90:92] 0 1496 keep-active VGPR[93:95] 0 1496 keep-active VGPR[96:98] 0 1496 keep-active VGPR[99:101] 0 1496 keep-active VGPR102 0 1496 keep-active VGPR[103:105] 0 1496 keep-active VGPR[106:108] 0 1496 keep-active VGPR[109:111] 0 1496 keep-active VGPR[112:114] 0 1496 keep-active VGPR[115:117] 0 1496 keep-active VGPR118 0 1496 keep-active VGPR[119:120] 0 1496 keep-active VGPR[121:122] 0 1496 keep-active VGPR[123:125] 0 1496 keep-active VGPR[126:128] 0 1496 keep-active VGPR[129:131] 0 1496 keep-active VGPR[132:134] 0 1496 keep-active VGPR[135:137] 0 1496 keep-active VGPR138 0 1496 keep-active VGPR139 0 1496 keep-active VGPR[140:142] 0 1496 keep-active VGPR[143:145] 0 1496 keep-active VGPR[146:148] 0 1496 keep-active VGPR149 0 1496 keep-active VGPR[150:152] 0 1496 keep-active VGPR[153:155] 0 1496 keep-active VGPR[156:158] 0 1496 keep-active VGPR[159:161] 0 1496 keep-active VGPR[162:170] 0 1496 keep-active VGPR[171:173] 0 1496 keep-active VGPR174 0 1496 keep-active VGPR[175:177] 0 1496 keep-active VGPR[178:181] 6 12 VGPR[178:181] 27 34 VGPR178 44 46 VGPR178 51 53 VGPR178 57 62 VGPR178 77 93 VGPR178 129 134 VGPR178 146 153 VGPR[178:180] 165 171 VGPR[178:180] 174 190 VGPR[178:180] 192 221 VGPR178 223 228 VGPR[178:180] 240 246 VGPR178 250 252 VGPR178 270 273 VGPR[178:180] 286 298 VGPR[178:180] 319 325 VGPR[178:180] 342 348 VGPR178 404 406 VGPR178 420 421 VGPR[178:180] 432 448 VGPR178 463 464 VGPR178 487 489 VGPR178 493 495 VGPR178 506 509 VGPR178 538 541 VGPR[178:179] 550 568 VGPR178 572 594 VGPR178 596 604 VGPR178 606 612 VGPR178 627 630 VGPR178 634 641 VGPR178 659 662 VGPR178 666 673 VGPR178 693 706 VGPR178 725 738 VGPR178 759 772 VGPR178 791 804 VGPR178 821 825 VGPR178 827 833 VGPR[178:180] 847 853 VGPR[178:180] 865 876 VGPR178 878 884 VGPR178 900 906 VGPR178 912 918 VGPR178 923 929 VGPR178 931 1016 VGPR178 1024 1027 VGPR[178:180] 1054 1063 VGPR[178:180] 1070 1076 VGPR[178:180] 1079 1085 VGPR178 1088 1090 VGPR[178:180] 1093 1099 VGPR[178:180] 1102 1108 VGPR[178:180] 1146 1152 VGPR[178:180] 1167 1178 VGPR178 1180 1186 VGPR178 1211 1229 VGPR[178:180] 1237 1249 VGPR[178:179] 1283 1287 VGPR178 1305 1307 VGPR178 1309 1314 VGPR178 1392 1393 VGPR[178:180] 1420 1426 VGPR178 1479 1485 VGPR179 46 67 VGPR179 79 94 VGPR179 132 134 VGPR179 149 151 VGPR179 153 156 VGPR179 228 231 VGPR179 252 255 VGPR179 272 273 VGPR179 575 578 VGPR179 580 583 VGPR179 585 590 VGPR179 592 596 VGPR179 598 602 VGPR[179:181] 610 617 VGPR179 629 630 VGPR179 638 642 VGPR179 661 662 VGPR179 670 674 VGPR179 697 700 VGPR179 704 708 VGPR179 729 732 VGPR179 736 740 VGPR179 763 773 VGPR179 795 805 VGPR[179:181] 823 833 VGPR[179:181] 882 933 VGPR179 935 1026 VGPR[179:181] 1184 1209 VGPR179 1213 1230 VGPR179 1306 1307 VGPR179 1313 1314 VGPR179 1481 1486 VGPR180 53 66 VGPR180 81 95 VGPR180 134 137 VGPR180 151 153 VGPR180 273 275 VGPR[180:181] 554 565 VGPR[180:181] 567 600 VGPR180 630 640 VGPR180 662 672 VGPR180 699 700 VGPR180 731 732 VGPR180 767 770 VGPR180 799 802 VGPR180 939 940 VGPR180 964 965 VGPR[180:182] 976 991 VGPR[180:182] 1005 1040 VGPR180 1215 1231 VGPR180 1307 1309 VGPR180 1314 1318 VGPR180 1483 1487 VGPR[181:183] 60 81 VGPR181 83 97 VGPR[181:183] 169 194 VGPR181 197 207 VGPR181 209 210 VGPR181 244 252 VGPR[181:183] 438 444 VGPR[181:183] 446 452 VGPR[181:183] 640 646 VGPR[181:183] 672 678 VGPR181 700 707 VGPR181 732 739 VGPR181 769 770 VGPR181 801 802 VGPR[181:183] 870 876 VGPR[181:183] 1058 1063 VGPR[181:183] 1172 1178 VGPR181 1217 1233 VGPR[181:183] 1424 1454 VGPR[181:184] 1485 1494 VGPR[182:183] 11 15 VGPR182 85 98 VGPR182 200 205 VGPR182 207 210 VGPR[182:183] 557 565 VGPR182 577 578 VGPR182 581 585 VGPR182 586 590 VGPR182 600 603 VGPR[182:184] 706 712 VGPR[182:184] 738 744 VGPR182 770 774 VGPR182 802 806 VGPR[182:184] 831 838 VGPR[182:184] 887 898 VGPR[182:184] 904 937 VGPR[182:184] 1189 1198 VGPR[182:184] 1200 1221 VGPR182 1223 1237 VGPR183 87 99 VGPR183 203 205 VGPR183 210 228 VGPR183 578 583 VGPR183 588 594 VGPR[183:185] 602 612 VGPR[183:185] 772 778 VGPR[183:185] 804 810 VGPR[183:185] 981 987 VGPR[183:185] 989 996 VGPR[183:185] 1010 1016 VGPR[183:185] 1019 1032 VGPR[183:185] 1034 1040 VGPR183 1225 1238 VGPR[184:186] 65 87 VGPR[184:186] 93 106 VGPR[184:186] 178 190 VGPR184 205 207 VGPR[184:186] 213 221 VGPR[184:186] 442 448 VGPR[184:185] 560 568 VGPR[184:186] 874 884 VGPR[184:186] 1061 1067 VGPR[184:186] 1176 1186 VGPR184 1227 1239 VGPR[185:187] 892 898 VGPR[185:187] 908 921 VGPR[185:187] 927 937 VGPR[185:187] 1193 1215 VGPR185 1219 1234 VGPR[186:188] 985 991 VGPR[186:188] 1014 1036 VGPR[186:188] 1038 1045 VGPR186 1221 1235 VGPR[187:189] 97 109 VGPR[187:189] 182 194 VGPR[187:189] 219 225 VGPR[187:189] 1229 1243 VGPR[188:190] 896 906 VGPR[188:190] 916 929 VGPR[188:190] 1207 1227 VGPR189 1026 1032 VGPR[190:198] 101 120 VGPR[190:192] 1030 1036 VGPR[190:192] 1233 1246 VGPR[193:201] 1241 1260 Linking branch instructions to their targets... Final disassembly: Program Type: Fragment Special Input Variables: offset: unset, size: 16, FloatVector4 gl_FragCoord BuiltIn(FragCoord) Textures: offset: 0, size: 4, Float iChannel0 offset: 1, size: 4, Float iChannel1 offset: 2, size: 4, Float iChannel2 offset: 3, size: 4, Float iChannel3 Output Variables: offset: 0, size: 16, FloatVector4 finalColor Uniform Constants: offset: 0, size: 12, FloatVector3 iResolution offset: 12, size: 4, Float iTime offset: 16, size: 16, FloatVector4 iMouse offset: 32, size: 16, FloatVector4 iDate offset: 48, size: 4, Float iFrame offset: 52, size: 48, FloatVector3 iChannelResolution[4] Constants: Float const95: 1 Float const96: 0 FloatVector3 const97: {1, 0, 0} Float const135: 2 UInt32 const141: 0 UInt32 const144: 1 UInt32 const147: 2 Float const177: 1.8 FloatVector3 const178: {1.8, 1.8, 1.8} Float const183: 1.1 Float const189: 1.2 Int32 const210: 0 Int32 const217: 255 Float const229: 0.0001 Int32 const246: 1 FloatVector3 const373: {0, 0, 0} Float const399: 0.5 FloatVector3 const400: {0.5, 0.5, 0.5} Float const404: 6 Float const405: 4 FloatVector3 const406: {6, 2, 4} Float const408: 0.4 FloatVector3 const409: {0.4, 0.4, 0.4} Float const463: 45 Float const474: 8 Float const475: 5 Float const476: 0.2 Float const483: 7 FloatVector3 const487: {0, 1, 0} Float const498: 100 Float const507: 99.9999 FloatVector4 const511: {0, 0, 0, 0} FloatVector3 const523: {1, 1, 1} Float const525: 10 UInt32 const561: 4 Function Local Variables: offset: unset, size: 16, FloatVector4 main.param548 offset: unset, size: 8, FloatVector2 main.param549 offset: unset, size: 16, FloatVector4 main.fragColor offset: unset, size: 8, FloatVector2 main.fragCoord offset: unset, size: 4, Float main.theta offset: unset, size: 4, Float rotateX(f1;.distA offset: unset, size: 4, Float rotateX(f1;.distB offset: unset, size: 4, Float intersectSDF(f1;f1;.distA offset: unset, size: 4, Float intersectSDF(f1;f1;.distB offset: unset, size: 12, FloatVector3 differenceSDF(f1;f1;.p offset: unset, size: 12, FloatVector3 differenceSDF(f1;f1;.size offset: unset, size: 12, FloatVector3 boxSDF(vf3;vf3;.p offset: unset, size: 4, Float boxSDF(vf3;vf3;.r offset: unset, size: 12, FloatVector3 sphereSDF(vf3;f1;.samplePoint offset: unset, size: 4, Float sceneSDF(vf3;.param174 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.param179 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.param180 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.param184 offset: unset, size: 4, Float sceneSDF(vf3;.param186 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.param190 offset: unset, size: 4, Float sceneSDF(vf3;.param192 offset: unset, size: 4, Float sceneSDF(vf3;.param194 offset: unset, size: 4, Float sceneSDF(vf3;.param196 offset: unset, size: 4, Float sceneSDF(vf3;.param199 offset: unset, size: 4, Float sceneSDF(vf3;.param200 offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.eye offset: unset, size: 12, FloatVector3 sceneSDF(vf3;.marchingDirection offset: unset, size: 4, Float sceneSDF(vf3;.start offset: unset, size: 4, Float sceneSDF(vf3;.end offset: unset, size: 4, Float shortestDistanceToSurface(vf3;vf3;f1;f1;.depth offset: unset, size: 4, Int32 shortestDistanceToSurface(vf3;vf3;f1;f1;.i offset: unset, size: 12, FloatVector3 shortestDistanceToSurface(vf3;vf3;f1;f1;.param226 offset: unset, size: 4, Float shortestDistanceToSurface(vf3;vf3;f1;f1;.fieldOfView offset: unset, size: 8, FloatVector2 shortestDistanceToSurface(vf3;vf3;f1;f1;.size offset: unset, size: 8, FloatVector2 shortestDistanceToSurface(vf3;vf3;f1;f1;.fragCoord offset: unset, size: 12, FloatVector3 rayDirection(f1;vf2;vf2;.p offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param282 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param292 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param303 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param313 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param324 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.param334 offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.k_d offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.k_s offset: unset, size: 4, Float estimateNormal(vf3;.alpha offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.p offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.eye offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.lightPos offset: unset, size: 12, FloatVector3 estimateNormal(vf3;.lightIntensity offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.param342 offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_a offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_d offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_s offset: unset, size: 4, Float phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.alpha offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.p offset: unset, size: 12, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.eye offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.color offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param410 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param412 offset: unset, size: 4, Float phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param414 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param416 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param418 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param420 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.param422 offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.eye offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.center offset: unset, size: 12, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.up offset: unset, size: 4, Float mainImage(vf4;vf2;.param466 offset: unset, size: 8, FloatVector2 mainImage(vf4;vf2;.param467 offset: unset, size: 8, FloatVector2 mainImage(vf4;vf2;.param470 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param488 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param490 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param491 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param499 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param501 offset: unset, size: 4, Float mainImage(vf4;vf2;.param503 offset: unset, size: 4, Float mainImage(vf4;vf2;.param504 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param527 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param529 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param531 offset: unset, size: 4, Float mainImage(vf4;vf2;.param533 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param535 offset: unset, size: 12, FloatVector3 mainImage(vf4;vf2;.param537 Instructions: V_SUB_F32 vDst(VGPR3) src0(SGPR2) src1(VGPR3) // VOP2 # Void main() Function: Void main() # lb5 Label: lb5 # 550: OpLoad: FloatVector4: tmp550 << gl_FragCoord V_MOV_B32 vDst(VGPR178) src0(VGPR2) V_MOV_B32 vDst(VGPR179) src0(VGPR3) V_MOV_B32 vDst(VGPR180) src0(VGPR4) V_MOV_B32 vDst(VGPR181) src0(VGPR5) # 551: OpVectorShuffle: FloatVector2: tmp551 << tmp550, tmp550, 0, 1 V_MOV_B32 vDst(VGPR182) src0(VGPR178) V_MOV_B32 vDst(VGPR183) src0(VGPR179) # OpStore: : tmp551 >> param549 V_MOV_B32 vDst(VGPR18) src0(VGPR182) V_MOV_B32 vDst(VGPR19) src0(VGPR183) # 552: OpFunctionCall: Void: mainImage(vf4;vf2;(param548, param549) S_ADD_U32 sDst(SGPR9) src0(LITERAL_CONST) src1(0) const: 0xd # VGPR[18:21] S_ADD_U32 sDst(SGPR12) src0(LITERAL_CONST) src1(0) const: 0x12 # VGPR[22:23] S_MOV_B64 sDst(SGPR14) src0(EXEC) # Indirect branch to mainImage(vf4;vf2;: 4216 S_GETPC_B64 sDst(SGPR10) src0(SGPR10) S_ADD_U32 sDst(SGPR10) src0(SGPR10) src1(LITERAL_CONST) const: 0x1078 S_ADDC_U32 sDst(SGPR11) src0(SGPR11) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR10) src0(SGPR10) S_MOV_B64 sDst(EXEC) src0(SGPR14) # .lbl0 # 553: OpLoad: FloatVector4: tmp553 << param548 # OpStore: : tmp553 >> finalColor V_MOV_B32 vDst(VGPR178) src0(VGPR13) V_MOV_B32 vDst(VGPR179) src0(VGPR14) V_MOV_B32 vDst(VGPR180) src0(VGPR15) V_MOV_B32 vDst(VGPR181) src0(VGPR16) # OpReturn: V_CVT_PKRTZ_F16_F32 vDst(VGPR178) src0(VGPR178) src1(VGPR179) src2(N/A) abs(0) clamp(0) omod(0) neg(0) // VOP3a V_CVT_PKRTZ_F16_F32 vDst(VGPR179) src0(VGPR180) src1(VGPR181) src2(N/A) abs(0) clamp(0) omod(0) neg(0) // VOP3a EXP en(0xf) tgt(0) compr(1) done(1) vm(1) vsrc0(VGPR178) vsrc1(VGPR179) vsrc2(VGPR180) vsrc3(VGPR181) S_WAITCNT 0 S_ENDPGM 0 # FloatMatrix3x3 rotateX(f1;(Float* theta) Function: FloatMatrix3x3 rotateX(f1;() S_MOV_B64 sDst(SGPR126) src0(EXEC) # lb13 Label: lb13 # 90: OpLoad: Float: tmp90 << theta S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR126) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 91: OpExtInst(Cos): Float: tmp91 << tmp90 V_MUL_F32 vDst(VGPR179) src0(LITERAL_CONST) src1(VGPR178) // VOP2 const: 0x3e22f983 V_FRACT_F32 vDst(VGPR179) src0(VGPR179) V_COS_F32 vDst(VGPR179) src0(VGPR179) # 93: OpLoad: Float: tmp93 << theta S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR126) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 94: OpExtInst(Sin): Float: tmp94 << tmp93 V_MUL_F32 vDst(VGPR180) src0(LITERAL_CONST) src1(VGPR178) // VOP2 const: 0x3e22f983 V_FRACT_F32 vDst(VGPR180) src0(VGPR180) V_SIN_F32 vDst(VGPR180) src0(VGPR180) # 100: OpFNegate: Float: tmp100 << tmp94 V_MUL_F32 vDst(VGPR178) src0(M1_0_F) src1(VGPR180) // VOP2 # 101: OpCompositeConstruct: FloatVector3: tmp101 << const96, tmp91, tmp100 S_MOV_B32 sDst(SGPR127) src0(LITERAL_CONST) const: 0x0 V_MOV_B32 vDst(VGPR181) src0(SGPR127) V_MOV_B32 vDst(VGPR182) src0(VGPR179) V_MOV_B32 vDst(VGPR183) src0(VGPR178) # 104: OpCompositeConstruct: FloatVector3: tmp104 << const96, tmp94, tmp91 S_MOV_B32 sDst(SGPR127) src0(LITERAL_CONST) const: 0x0 V_MOV_B32 vDst(VGPR184) src0(SGPR127) V_MOV_B32 vDst(VGPR185) src0(VGPR180) V_MOV_B32 vDst(VGPR186) src0(VGPR179) # 105: OpCompositeExtract: Float: tmp105 << const97, 0 S_MOV_B32 sDst(SGPR127) src0(1_0_F) # 106: OpCompositeExtract: Float: tmp106 << const97, 1 S_MOV_B32 sDst(SGPR128) src0(LITERAL_CONST) const: 0x0 S_MOV_B32 sDst(SGPR129) src0(SGPR129) # 107: OpCompositeExtract: Float: tmp107 << const97, 2 S_MOV_B32 sDst(SGPR128) src0(LITERAL_CONST) const: 0x0 S_MOV_B32 sDst(SGPR130) src0(SGPR130) # 108: OpCompositeExtract: Float: tmp108 << tmp101, 0 V_MOV_B32 vDst(VGPR178) src0(VGPR181) # 109: OpCompositeExtract: Float: tmp109 << tmp101, 1 V_MOV_B32 vDst(VGPR179) src0(VGPR182) # 110: OpCompositeExtract: Float: tmp110 << tmp101, 2 V_MOV_B32 vDst(VGPR180) src0(VGPR183) # 111: OpCompositeExtract: Float: tmp111 << tmp104, 0 V_MOV_B32 vDst(VGPR181) src0(VGPR184) # 112: OpCompositeExtract: Float: tmp112 << tmp104, 1 V_MOV_B32 vDst(VGPR182) src0(VGPR185) # 113: OpCompositeExtract: Float: tmp113 << tmp104, 2 V_MOV_B32 vDst(VGPR183) src0(VGPR186) # 114: OpCompositeConstruct: FloatVector3: tmp114 << tmp105, tmp106, tmp107 S_MOV_B32 sDst(SGPR131) src0(SGPR127) S_MOV_B32 sDst(SGPR132) src0(SGPR129) S_MOV_B32 sDst(SGPR133) src0(SGPR130) # 115: OpCompositeConstruct: FloatVector3: tmp115 << tmp108, tmp109, tmp110 V_MOV_B32 vDst(VGPR184) src0(VGPR178) V_MOV_B32 vDst(VGPR185) src0(VGPR179) V_MOV_B32 vDst(VGPR186) src0(VGPR180) # 116: OpCompositeConstruct: FloatVector3: tmp116 << tmp111, tmp112, tmp113 V_MOV_B32 vDst(VGPR187) src0(VGPR181) V_MOV_B32 vDst(VGPR188) src0(VGPR182) V_MOV_B32 vDst(VGPR189) src0(VGPR183) # 117: OpCompositeConstruct: FloatMatrix3x3: tmp117 << tmp114, tmp115, tmp116 V_MOV_B32 vDst(VGPR190) src0(SGPR131) V_MOV_B32 vDst(VGPR191) src0(SGPR132) V_MOV_B32 vDst(VGPR192) src0(SGPR133) V_MOV_B32 vDst(VGPR193) src0(VGPR184) V_MOV_B32 vDst(VGPR194) src0(VGPR185) V_MOV_B32 vDst(VGPR195) src0(VGPR186) V_MOV_B32 vDst(VGPR196) src0(VGPR187) V_MOV_B32 vDst(VGPR197) src0(VGPR188) V_MOV_B32 vDst(VGPR198) src0(VGPR189) # OpReturnValue: : << tmp117 S_MOV_B32 sDst(M0) src0(SGPR127) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR190) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR191) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR192) V_MOVRELD_B32 vDst(VGPR3) src0(VGPR193) V_MOVRELD_B32 vDst(VGPR4) src0(VGPR194) V_MOVRELD_B32 vDst(VGPR5) src0(VGPR195) V_MOVRELD_B32 vDst(VGPR6) src0(VGPR196) V_MOVRELD_B32 vDst(VGPR7) src0(VGPR197) V_MOVRELD_B32 vDst(VGPR8) src0(VGPR198) S_SETPC_B64 sDst(SGPR16) src0(SGPR16) # Float intersectSDF(f1;f1;(Float* distA, Float* distB) Function: Float intersectSDF(f1;f1;(, Float rotateX(f1;.distB) S_MOV_B64 sDst(SGPR128) src0(EXEC) # lb18 Label: lb18 # 120: OpLoad: Float: tmp120 << distA S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR20) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 121: OpLoad: Float: tmp121 << distB S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR21) const: 0x0 V_MOVRELS_B32 vDst(VGPR179) src0(VGPR0) # 122: OpExtInst(FMax): Float: tmp122 << tmp120, tmp121 V_MAX_F32 vDst(VGPR180) src0(VGPR178) src1(VGPR179) // VOP2 # OpReturnValue: : << tmp122 S_MOV_B32 sDst(M0) src0(SGPR13) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR180) S_SETPC_B64 sDst(SGPR18) src0(SGPR18) # Float differenceSDF(f1;f1;(Float* distA, Float* distB) Function: Float differenceSDF(f1;f1;(, Float intersectSDF(f1;f1;.distB) S_MOV_B64 sDst(SGPR128) src0(EXEC) # lb22 Label: lb22 # 125: OpLoad: Float: tmp125 << distA S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR25) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 126: OpLoad: Float: tmp126 << distB S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR26) const: 0x0 V_MOVRELS_B32 vDst(VGPR179) src0(VGPR0) # 127: OpFNegate: Float: tmp127 << tmp126 V_MUL_F32 vDst(VGPR180) src0(M1_0_F) src1(VGPR179) // VOP2 # 128: OpExtInst(FMax): Float: tmp128 << tmp125, tmp127 V_MAX_F32 vDst(VGPR179) src0(VGPR178) src1(VGPR180) // VOP2 # OpReturnValue: : << tmp128 S_MOV_B32 sDst(M0) src0(SGPR24) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR179) S_SETPC_B64 sDst(SGPR22) src0(SGPR22) # Float boxSDF(vf3;vf3;(FloatVector3* p, FloatVector3* size) Function: Float boxSDF(vf3;vf3;(, FloatVector3 differenceSDF(f1;f1;.size) S_MOV_B64 sDst(SGPR128) src0(EXEC) # lb28 Label: lb28 # 132: OpLoad: FloatVector3: tmp132 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR30) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # 133: OpExtInst(FAbs): FloatVector3: tmp133 << tmp132 V_ADD_F32 vDst(VGPR181) src0(VGPR178) src1(0) src2(N/A) abs(1) clamp(0) omod(0) neg(0) // VOP3a V_ADD_F32 vDst(VGPR182) src0(VGPR179) src1(0) src2(N/A) abs(1) clamp(0) omod(0) neg(0) // VOP3a V_ADD_F32 vDst(VGPR183) src0(VGPR180) src1(0) src2(N/A) abs(1) clamp(0) omod(0) neg(0) // VOP3a # 134: OpLoad: FloatVector3: tmp134 << size S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR31) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # 136: OpCompositeConstruct: FloatVector3: tmp136 << const135, const135, const135 V_MOV_B32 vDst(VGPR184) src0(2_0_F) V_MOV_B32 vDst(VGPR185) src0(2_0_F) V_MOV_B32 vDst(VGPR186) src0(2_0_F) # 137: OpFDiv: FloatVector3: tmp137 << tmp134, tmp136 V_RCP_F32 vDst(VGPR187) src0(VGPR184) V_RCP_F32 vDst(VGPR188) src0(VGPR185) V_RCP_F32 vDst(VGPR189) src0(VGPR186) V_MUL_F32 vDst(VGPR187) src0(VGPR178) src1(VGPR187) // VOP2 V_MUL_F32 vDst(VGPR188) src0(VGPR179) src1(VGPR188) // VOP2 V_MUL_F32 vDst(VGPR189) src0(VGPR180) src1(VGPR189) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR187) src0(VGPR187) src1(VGPR184) src2(VGPR178) abs(0) clamp(0) omod(0) neg(0) // VOP3a V_DIV_FIXUP_F32 vDst(VGPR188) src0(VGPR188) src1(VGPR185) src2(VGPR179) abs(0) clamp(0) omod(0) neg(0) // VOP3a V_DIV_FIXUP_F32 vDst(VGPR189) src0(VGPR189) src1(VGPR186) src2(VGPR180) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 138: OpFSub: FloatVector3: tmp138 << tmp133, tmp137 V_SUB_F32 vDst(VGPR178) src0(VGPR181) src1(VGPR187) // VOP2 V_SUB_F32 vDst(VGPR179) src0(VGPR182) src1(VGPR188) // VOP2 V_SUB_F32 vDst(VGPR180) src0(VGPR183) src1(VGPR189) // VOP2 # 142: OpAccessChain: Float*: d[0] # 143: OpCompositeExtract: Float: tmp143 << tmp138, 0 V_MOV_B32 vDst(VGPR181) src0(VGPR178) # 145: OpAccessChain: Float*: d[1] # 146: OpCompositeExtract: Float: tmp146 << tmp138, 1 V_MOV_B32 vDst(VGPR182) src0(VGPR179) # 148: OpAccessChain: Float*: d[2] # 149: OpCompositeExtract: Float: tmp149 << tmp138, 2 V_MOV_B32 vDst(VGPR183) src0(VGPR180) # 150: OpExtInst(FMax): Float: tmp150 << tmp146, tmp149 V_MAX_F32 vDst(VGPR184) src0(VGPR182) src1(VGPR183) // VOP2 # 151: OpExtInst(FMax): Float: tmp151 << tmp143, tmp150 V_MAX_F32 vDst(VGPR182) src0(VGPR181) src1(VGPR184) // VOP2 # 152: OpExtInst(FMin): Float: tmp152 << tmp151, const96 V_MOV_B32 vDst(VGPR181) src0(LITERAL_CONST) const: 0x00000000 V_MIN_F32 vDst(VGPR183) src0(VGPR182) src1(VGPR181) // VOP2 # 155: OpCompositeConstruct: FloatVector3: tmp155 << const96, const96, const96 S_MOV_B32 sDst(SGPR128) src0(LITERAL_CONST) const: 0x0 V_MOV_B32 vDst(VGPR184) src0(SGPR128) S_MOV_B32 sDst(SGPR128) src0(LITERAL_CONST) const: 0x0 V_MOV_B32 vDst(VGPR185) src0(SGPR128) S_MOV_B32 sDst(SGPR128) src0(LITERAL_CONST) const: 0x0 V_MOV_B32 vDst(VGPR186) src0(SGPR128) # 156: OpExtInst(FMax): FloatVector3: tmp156 << tmp138, tmp155 V_MAX_F32 vDst(VGPR187) src0(VGPR178) src1(VGPR184) // VOP2 V_MAX_F32 vDst(VGPR188) src0(VGPR179) src1(VGPR185) // VOP2 V_MAX_F32 vDst(VGPR189) src0(VGPR180) src1(VGPR186) // VOP2 # 157: OpExtInst(Length): Float: tmp157 << tmp156 V_MUL_F32 vDst(VGPR178) src0(VGPR187) src1(VGPR187) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR188) src1(VGPR188) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR189) src1(VGPR189) // VOP2 V_SQRT_F32 vDst(VGPR178) src0(VGPR178) # 160: OpFAdd: Float: tmp160 << tmp152, tmp157 V_ADD_F32 vDst(VGPR179) src0(VGPR183) src1(VGPR178) // VOP2 # OpReturnValue: : << tmp160 S_MOV_B32 sDst(M0) src0(SGPR27) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR179) S_SETPC_B64 sDst(SGPR28) src0(SGPR28) # Float sphereSDF(vf3;f1;(FloatVector3* p, Float* r) Function: Float sphereSDF(vf3;f1;(, Float boxSDF(vf3;vf3;.r) S_MOV_B64 sDst(SGPR128) src0(EXEC) # lb33 Label: lb33 # 163: OpLoad: FloatVector3: tmp163 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR35) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # 164: OpExtInst(Length): Float: tmp164 << tmp163 V_MUL_F32 vDst(VGPR181) src0(VGPR178) src1(VGPR178) // VOP2 V_MAC_F32 vDst(VGPR181) src0(VGPR179) src1(VGPR179) // VOP2 V_MAC_F32 vDst(VGPR181) src0(VGPR180) src1(VGPR180) // VOP2 V_SQRT_F32 vDst(VGPR181) src0(VGPR181) # 165: OpLoad: Float: tmp165 << r S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR36) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 166: OpFSub: Float: tmp166 << tmp164, tmp165 V_SUB_F32 vDst(VGPR179) src0(VGPR181) src1(VGPR178) // VOP2 # OpReturnValue: : << tmp166 S_MOV_B32 sDst(M0) src0(SGPR34) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR179) S_SETPC_B64 sDst(SGPR32) src0(SGPR32) # Float sceneSDF(vf3;(FloatVector3* samplePoint) Function: Float sceneSDF(vf3;() S_MOV_B64 sDst(SGPR128) src0(EXEC) # lb37 Label: lb37 # 170: OpLoad: FloatVector3: tmp170 << samplePoint S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR40) const: 0x0 V_MOVRELS_B32 vDst(VGPR39) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR40) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR41) src0(VGPR2) # 171: OpAccessChain: Float*: samplePoint[0] # 172: OpLoad: Float: tmp172 << samplePoint[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR40) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 173: OpFMul: Float: tmp173 << tmp172, const95 V_MOV_B32 vDst(VGPR179) src0(1_0_F) V_MUL_F32 vDst(VGPR180) src0(VGPR178) src1(VGPR179) // VOP2 # OpStore: : tmp173 >> param174 V_MOV_B32 vDst(VGPR20) src0(VGPR180) # 175: OpFunctionCall: FloatMatrix3x3: rotateX(f1;(param174) S_ADD_U32 sDst(SGPR126) src0(LITERAL_CONST) src1(0) const: 0x14 # VGPR125 S_MOV_B64 sDst(SGPR42) src0(EXEC) S_MOV_B32 sDst(SGPR127) src0(LITERAL_CONST) const: 0x2a # VGPR[150:158] # Indirect branch to rotateX(f1;: -756 S_GETPC_B64 sDst(SGPR16) src0(SGPR16) S_SUB_U32 sDst(SGPR16) src0(SGPR16) src1(LITERAL_CONST) const: 0x2f4 S_SUBB_U32 sDst(SGPR17) src0(SGPR17) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR16) src0(SGPR16) S_MOV_B64 sDst(EXEC) src0(SGPR42) # .lbl1 # 176: OpVectorTimesMatrix: FloatVector3: tmp176 << tmp170, rotateX(f1; V_MUL_F32 vDst(VGPR178) src0(VGPR39) src1(VGPR42) // VOP2 V_MUL_F32 vDst(VGPR179) src0(VGPR39) src1(VGPR45) // VOP2 V_MUL_F32 vDst(VGPR180) src0(VGPR39) src1(VGPR48) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR40) src1(VGPR43) // VOP2 V_MAC_F32 vDst(VGPR179) src0(VGPR40) src1(VGPR46) // VOP2 V_MAC_F32 vDst(VGPR180) src0(VGPR40) src1(VGPR49) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR41) src1(VGPR44) // VOP2 V_MAC_F32 vDst(VGPR179) src0(VGPR41) src1(VGPR47) // VOP2 V_MAC_F32 vDst(VGPR180) src0(VGPR41) src1(VGPR50) // VOP2 # OpStore: : tmp176 >> param179 V_MOV_B32 vDst(VGPR21) src0(VGPR178) V_MOV_B32 vDst(VGPR22) src0(VGPR179) V_MOV_B32 vDst(VGPR23) src0(VGPR180) # OpStore: : const178 >> param180 S_MOV_B32 sDst(SGPR128) src0(LITERAL_CONST) const: 0x3fe66666 S_MOV_B32 sDst(SGPR129) src0(LITERAL_CONST) const: 0x3fe66666 S_MOV_B32 sDst(SGPR130) src0(LITERAL_CONST) const: 0x3fe66666 V_MOV_B32 vDst(VGPR24) src0(SGPR128) V_MOV_B32 vDst(VGPR25) src0(SGPR129) V_MOV_B32 vDst(VGPR26) src0(SGPR130) # 181: OpFunctionCall: Float: boxSDF(vf3;vf3;(param179, param180) S_ADD_U32 sDst(SGPR30) src0(LITERAL_CONST) src1(0) const: 0x15 # VGPR[126:128] S_ADD_U32 sDst(SGPR31) src0(LITERAL_CONST) src1(0) const: 0x18 # VGPR[129:131] S_MOV_B64 sDst(SGPR44) src0(EXEC) S_MOV_B32 sDst(SGPR27) src0(LITERAL_CONST) const: 0x33 # VGPR165 # Indirect branch to boxSDF(vf3;vf3;: -532 S_GETPC_B64 sDst(SGPR28) src0(SGPR28) S_SUB_U32 sDst(SGPR28) src0(SGPR28) src1(LITERAL_CONST) const: 0x214 S_SUBB_U32 sDst(SGPR29) src0(SGPR29) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR28) src0(SGPR28) S_MOV_B64 sDst(EXEC) src0(SGPR44) # .lbl2 # 185: OpLoad: FloatVector3: tmp185 << samplePoint S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR40) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # OpStore: : tmp185 >> param184 V_MOV_B32 vDst(VGPR27) src0(VGPR178) V_MOV_B32 vDst(VGPR28) src0(VGPR179) V_MOV_B32 vDst(VGPR29) src0(VGPR180) # OpStore: : const183 >> param186 S_MOV_B32 sDst(SGPR126) src0(LITERAL_CONST) const: 0x3f8ccccd V_MOV_B32 vDst(VGPR30) src0(SGPR126) # 187: OpFunctionCall: Float: sphereSDF(vf3;f1;(param184, param186) S_ADD_U32 sDst(SGPR35) src0(LITERAL_CONST) src1(0) const: 0x1b # VGPR[132:134] S_ADD_U32 sDst(SGPR36) src0(LITERAL_CONST) src1(0) const: 0x1e # VGPR135 S_MOV_B64 sDst(SGPR46) src0(EXEC) S_MOV_B32 sDst(SGPR34) src0(LITERAL_CONST) const: 0x34 # VGPR170 # Indirect branch to sphereSDF(vf3;f1;: -380 S_GETPC_B64 sDst(SGPR32) src0(SGPR32) S_SUB_U32 sDst(SGPR32) src0(SGPR32) src1(LITERAL_CONST) const: 0x17c S_SUBB_U32 sDst(SGPR33) src0(SGPR33) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR32) src0(SGPR32) S_MOV_B64 sDst(EXEC) src0(SGPR46) # .lbl3 # 191: OpLoad: FloatVector3: tmp191 << samplePoint S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR40) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # OpStore: : tmp191 >> param190 V_MOV_B32 vDst(VGPR31) src0(VGPR178) V_MOV_B32 vDst(VGPR32) src0(VGPR179) V_MOV_B32 vDst(VGPR33) src0(VGPR180) # OpStore: : const189 >> param192 S_MOV_B32 sDst(SGPR126) src0(LITERAL_CONST) const: 0x3f99999a V_MOV_B32 vDst(VGPR34) src0(SGPR126) # 193: OpFunctionCall: Float: sphereSDF(vf3;f1;(param190, param192) S_ADD_U32 sDst(SGPR35) src0(LITERAL_CONST) src1(0) const: 0x1f # VGPR[136:138] S_ADD_U32 sDst(SGPR36) src0(LITERAL_CONST) src1(0) const: 0x22 # VGPR139 S_MOV_B64 sDst(SGPR48) src0(EXEC) S_MOV_B32 sDst(SGPR34) src0(LITERAL_CONST) const: 0x35 # VGPR175 # Indirect branch to sphereSDF(vf3;f1;: -480 S_GETPC_B64 sDst(SGPR32) src0(SGPR32) S_SUB_U32 sDst(SGPR32) src0(SGPR32) src1(LITERAL_CONST) const: 0x1e0 S_SUBB_U32 sDst(SGPR33) src0(SGPR33) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR32) src0(SGPR32) S_MOV_B64 sDst(EXEC) src0(SGPR48) # .lbl4 # OpStore: : boxSDF(vf3;vf3; >> param194 V_MOV_B32 vDst(VGPR35) src0(VGPR51) # OpStore: : sphereSDF(vf3;f1; >> param196 V_MOV_B32 vDst(VGPR36) src0(VGPR52) # 198: OpFunctionCall: Float: differenceSDF(f1;f1;(param194, param196) S_ADD_U32 sDst(SGPR25) src0(LITERAL_CONST) src1(0) const: 0x23 # VGPR140 S_ADD_U32 sDst(SGPR26) src0(LITERAL_CONST) src1(0) const: 0x24 # VGPR141 S_MOV_B64 sDst(SGPR50) src0(EXEC) S_MOV_B32 sDst(SGPR24) src0(LITERAL_CONST) const: 0x36 # VGPR176 # Indirect branch to differenceSDF(f1;f1;: -844 S_GETPC_B64 sDst(SGPR22) src0(SGPR22) S_SUB_U32 sDst(SGPR22) src0(SGPR22) src1(LITERAL_CONST) const: 0x34c S_SUBB_U32 sDst(SGPR23) src0(SGPR23) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR22) src0(SGPR22) S_MOV_B64 sDst(EXEC) src0(SGPR50) # .lbl5 # OpStore: : differenceSDF(f1;f1; >> param199 V_MOV_B32 vDst(VGPR37) src0(VGPR54) # OpStore: : sphereSDF(vf3;f1; >> param200 V_MOV_B32 vDst(VGPR38) src0(VGPR53) # 202: OpFunctionCall: Float: intersectSDF(f1;f1;(param199, param200) S_ADD_U32 sDst(SGPR20) src0(LITERAL_CONST) src1(0) const: 0x25 # VGPR142 S_ADD_U32 sDst(SGPR21) src0(LITERAL_CONST) src1(0) const: 0x26 # VGPR143 S_MOV_B64 sDst(SGPR52) src0(EXEC) S_MOV_B32 sDst(SGPR13) src0(LITERAL_CONST) const: 0x37 # VGPR177 # Indirect branch to intersectSDF(f1;f1;: -952 S_GETPC_B64 sDst(SGPR18) src0(SGPR18) S_SUB_U32 sDst(SGPR18) src0(SGPR18) src1(LITERAL_CONST) const: 0x3b8 S_SUBB_U32 sDst(SGPR19) src0(SGPR19) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR18) src0(SGPR18) S_MOV_B64 sDst(EXEC) src0(SGPR52) # .lbl6 # OpReturnValue: : << intersectSDF(f1;f1; S_MOV_B32 sDst(M0) src0(SGPR37) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR55) S_SETPC_B64 sDst(SGPR38) src0(SGPR38) # Float shortestDistanceToSurface(vf3;vf3;f1;f1;(FloatVector3* eye, FloatVector3* marchingDirection, Float* start, Float* end) Function: Float shortestDistanceToSurface(vf3;vf3;f1;f1;(, FloatVector3 sceneSDF(vf3;.marchingDirection, Float sceneSDF(vf3;.start, Float sceneSDF(vf3;.end) S_MOV_B64 sDst(SGPR60) src0(EXEC) # lb44 Label: lb44 # 206: OpLoad: Float: tmp206 << start S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR58) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # OpStore: : tmp206 >> depth V_MOV_B32 vDst(VGPR56) src0(VGPR178) # OpStore: : const210 >> i S_MOV_B32 sDst(SGPR115) src0(0) # OpBranch: to lb211 # lb211 Label: lb211 # OpLoopMerge: (merge: lb213, continue: lb214) # CF Block: Merge: lb213, Continue: lb214 S_MOV_B64 sDst(SGPR62) src0(EXEC) S_MOV_B64 sDst(SGPR64) src0(EXEC) S_MOV_B64 sDst(SGPR66) src0(EXEC) Label: lb211Loop # OpBranch: to lb215 # lb215 Label: lb215 # 216: OpLoad: Int: tmp216 << i Decorators: RelaxedPrecision # 219: OpSLessThan: Bool: tmp219 << tmp216, const217 V_MOV_B32 vDst(VGPR178) src0(LITERAL_CONST) const: 0x000000ff V_CMP_LT_I32 dst(SGPR126) src0(SGPR115) src1(VGPR178) // VOP3a # OpBranchConditional: if(tmp219) then branch to lb212, else branch to lb213 # CF Block: Cond Branch: true: lb212, false: lb213 S_AND_B64 sDst(EXEC) src0(SGPR126) src1(EXEC) S_CBRANCH_EXECZ 72 lb213 # lb212 Label: lb212 S_MOV_B64 sDst(SGPR64) src0(EXEC) S_MOV_B64 sDst(SGPR66) src0(EXEC) # 221: OpLoad: FloatVector3: tmp221 << eye S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR56) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # 222: OpLoad: Float: tmp222 << depth # 223: OpLoad: FloatVector3: tmp223 << marchingDirection S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR57) const: 0x0 V_MOVRELS_B32 vDst(VGPR181) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR182) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR183) src0(VGPR2) # 224: OpVectorTimesScalar: FloatVector3: tmp224 << tmp223, tmp222 V_MUL_F32 vDst(VGPR184) src0(VGPR56) src1(VGPR181) // VOP2 V_MUL_F32 vDst(VGPR185) src0(VGPR56) src1(VGPR182) // VOP2 V_MUL_F32 vDst(VGPR186) src0(VGPR56) src1(VGPR183) // VOP2 # 225: OpFAdd: FloatVector3: tmp225 << tmp221, tmp224 V_ADD_F32 vDst(VGPR181) src0(VGPR178) src1(VGPR184) // VOP2 V_ADD_F32 vDst(VGPR182) src0(VGPR179) src1(VGPR185) // VOP2 V_ADD_F32 vDst(VGPR183) src0(VGPR180) src1(VGPR186) // VOP2 # OpStore: : tmp225 >> param226 V_MOV_B32 vDst(VGPR57) src0(VGPR181) V_MOV_B32 vDst(VGPR58) src0(VGPR182) V_MOV_B32 vDst(VGPR59) src0(VGPR183) # 227: OpFunctionCall: Float: sceneSDF(vf3;(param226) S_ADD_U32 sDst(SGPR40) src0(LITERAL_CONST) src1(0) const: 0x39 # VGPR[180:182] S_MOV_B64 sDst(SGPR68) src0(EXEC) S_MOV_B32 sDst(SGPR37) src0(LITERAL_CONST) const: 0x3c # VGPR197 # Indirect branch to sceneSDF(vf3;: -744 S_GETPC_B64 sDst(SGPR38) src0(SGPR38) S_SUB_U32 sDst(SGPR38) src0(SGPR38) src1(LITERAL_CONST) const: 0x2e8 S_SUBB_U32 sDst(SGPR39) src0(SGPR39) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR38) src0(SGPR38) S_MOV_B64 sDst(EXEC) src0(SGPR68) # .lbl7 # 230: OpFOrdLessThan: Bool: tmp230 << sceneSDF(vf3;, const229 V_MOV_B32 vDst(VGPR178) src0(LITERAL_CONST) const: 0x38d1b717 V_CMP_LT_F32 dst(SGPR126) src0(VGPR60) src1(VGPR178) // VOP3a # OpSelectionMerge: (merge: lb232) # CF Block: Merge: lb232 S_MOV_B64 sDst(SGPR128) src0(EXEC) # OpBranchConditional: if(tmp230) then branch to lb231, else branch to lb232 # CF Block: Cond Branch: true: lb231, false: lb232 S_AND_B64 sDst(EXEC) src0(SGPR126) src1(EXEC) S_CBRANCH_EXECZ 5 lb232 # lb231 Label: lb231 # 233: OpLoad: Float: tmp233 << depth # OpReturnValue: : << tmp233 S_MOV_B32 sDst(M0) src0(SGPR41) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR56) S_ANDN2_B64 sDst(SGPR60) src0(SGPR60) src1(EXEC) S_ANDN2_B64 sDst(SGPR64) src0(SGPR64) src1(EXEC) S_ANDN2_B64 sDst(SGPR66) src0(SGPR66) src1(EXEC) # lb232 Label: lb232 # CF Merge Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR128) S_AND_B64 sDst(EXEC) src0(EXEC) src1(SGPR66) # 236: OpLoad: Float: tmp236 << depth # 237: OpFAdd: Float: tmp237 << tmp236, sceneSDF(vf3; V_ADD_F32 vDst(VGPR178) src0(VGPR56) src1(VGPR60) // VOP2 # OpStore: : tmp237 >> depth V_MOV_B32 vDst(VGPR56) src0(VGPR178) # 238: OpLoad: Float: tmp238 << depth # 239: OpLoad: Float: tmp239 << end S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR59) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 240: OpFOrdGreaterThanEqual: Bool: tmp240 << tmp238, tmp239 V_CMP_GE_F32 dst(SGPR126) src0(VGPR56) src1(VGPR178) // VOP3a # OpSelectionMerge: (merge: lb242) # CF Block: Merge: lb242 S_MOV_B64 sDst(SGPR128) src0(EXEC) # OpBranchConditional: if(tmp240) then branch to lb241, else branch to lb242 # CF Block: Cond Branch: true: lb241, false: lb242 S_AND_B64 sDst(EXEC) src0(SGPR126) src1(EXEC) S_CBRANCH_EXECZ 8 lb242 # lb241 Label: lb241 # 243: OpLoad: Float: tmp243 << end S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR59) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # OpReturnValue: : << tmp243 S_MOV_B32 sDst(M0) src0(SGPR41) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR178) S_ANDN2_B64 sDst(SGPR60) src0(SGPR60) src1(EXEC) S_ANDN2_B64 sDst(SGPR64) src0(SGPR64) src1(EXEC) S_ANDN2_B64 sDst(SGPR66) src0(SGPR66) src1(EXEC) # lb242 Label: lb242 # CF Merge Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR128) S_AND_B64 sDst(EXEC) src0(EXEC) src1(SGPR66) # OpBranch: to lb214 # lb214 Label: lb214 # CF Continue Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR64) # 245: OpLoad: Int: tmp245 << i Decorators: RelaxedPrecision # 247: OpIAdd: Int: tmp247 << tmp245, const246 Decorators: RelaxedPrecision S_MOV_B32 sDst(SGPR126) src0(1_INT) S_ADD_I32 sDst(SGPR127) src0(SGPR115) src1(SGPR126) # OpStore: : tmp247 >> i S_MOV_B32 sDst(SGPR115) src0(SGPR127) # OpBranch: to lb211 S_BRANCH -78 lb211Loop # lb213 Label: lb213 # CF Merge Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR62) S_AND_B64 sDst(EXEC) src0(EXEC) src1(SGPR60) # 248: OpLoad: Float: tmp248 << end S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR59) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # OpReturnValue: : << tmp248 S_MOV_B32 sDst(M0) src0(SGPR41) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR178) S_SETPC_B64 sDst(SGPR54) src0(SGPR54) # FloatVector3 rayDirection(f1;vf2;vf2;(Float* fieldOfView, FloatVector2* size, FloatVector2* fragCoord) Function: FloatVector3 rayDirection(f1;vf2;vf2;(, FloatVector2 shortestDistanceToSurface(vf3;vf3;f1;f1;.size, FloatVector2 shortestDistanceToSurface(vf3;vf3;f1;f1;.fragCoord) S_MOV_B64 sDst(SGPR128) src0(EXEC) # lb52 Label: lb52 # 252: OpLoad: FloatVector2: tmp252 << fragCoord S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR75) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) # 253: OpLoad: FloatVector2: tmp253 << size S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR74) const: 0x0 V_MOVRELS_B32 vDst(VGPR180) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR181) src0(VGPR1) # 254: OpCompositeConstruct: FloatVector2: tmp254 << const135, const135 V_MOV_B32 vDst(VGPR182) src0(2_0_F) V_MOV_B32 vDst(VGPR183) src0(2_0_F) # 255: OpFDiv: FloatVector2: tmp255 << tmp253, tmp254 V_RCP_F32 vDst(VGPR184) src0(VGPR182) V_RCP_F32 vDst(VGPR185) src0(VGPR183) V_MUL_F32 vDst(VGPR184) src0(VGPR180) src1(VGPR184) // VOP2 V_MUL_F32 vDst(VGPR185) src0(VGPR181) src1(VGPR185) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR184) src0(VGPR184) src1(VGPR182) src2(VGPR180) abs(0) clamp(0) omod(0) neg(0) // VOP3a V_DIV_FIXUP_F32 vDst(VGPR185) src0(VGPR185) src1(VGPR183) src2(VGPR181) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 256: OpFSub: FloatVector2: tmp256 << tmp252, tmp255 V_SUB_F32 vDst(VGPR180) src0(VGPR178) src1(VGPR184) // VOP2 V_SUB_F32 vDst(VGPR181) src0(VGPR179) src1(VGPR185) // VOP2 # 258: OpAccessChain: Float*: size[1] # 259: OpLoad: Float: tmp259 << size[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR74) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR1) # 260: OpLoad: Float: tmp260 << fieldOfView S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR73) const: 0x0 V_MOVRELS_B32 vDst(VGPR179) src0(VGPR0) # 261: OpExtInst(Radians): Float: tmp261 << tmp260 V_MOV_B32 vDst(VGPR182) src0(LITERAL_CONST) const: 0x3c8efa35 V_MUL_F32 vDst(VGPR183) src0(VGPR179) src1(VGPR182) // VOP2 # 262: OpFDiv: Float: tmp262 << tmp261, const135 V_MOV_B32 vDst(VGPR179) src0(2_0_F) V_RCP_F32 vDst(VGPR182) src0(VGPR179) V_MUL_F32 vDst(VGPR182) src0(VGPR183) src1(VGPR182) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR182) src0(VGPR182) src1(VGPR179) src2(VGPR183) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 263: OpExtInst(Tan): Float: tmp263 << tmp262 V_MUL_F32 vDst(VGPR179) src0(LITERAL_CONST) src1(VGPR182) // VOP2 const: 0x3e22f983 V_SIN_F32 vDst(VGPR182) src0(VGPR179) V_COS_F32 vDst(VGPR179) src0(VGPR179) V_RCP_F32 vDst(VGPR183) src0(VGPR179) V_MUL_F32 vDst(VGPR183) src0(VGPR182) src1(VGPR183) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR183) src0(VGPR183) src1(VGPR179) src2(VGPR182) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 264: OpFDiv: Float: tmp264 << tmp259, tmp263 V_RCP_F32 vDst(VGPR179) src0(VGPR183) V_MUL_F32 vDst(VGPR179) src0(VGPR178) src1(VGPR179) // VOP2 V_DIV_FIXUP_F32 vDst(VGPR179) src0(VGPR179) src1(VGPR183) src2(VGPR178) abs(0) clamp(0) omod(0) neg(0) // VOP3a # 267: OpFNegate: Float: tmp267 << tmp264 V_MUL_F32 vDst(VGPR178) src0(M1_0_F) src1(VGPR179) // VOP2 # 268: OpCompositeExtract: Float: tmp268 << tmp256, 0 V_MOV_B32 vDst(VGPR179) src0(VGPR180) # 269: OpCompositeExtract: Float: tmp269 << tmp256, 1 V_MOV_B32 vDst(VGPR182) src0(VGPR181) # 270: OpCompositeConstruct: FloatVector3: tmp270 << tmp268, tmp269, tmp267 V_MOV_B32 vDst(VGPR183) src0(VGPR179) V_MOV_B32 vDst(VGPR184) src0(VGPR182) V_MOV_B32 vDst(VGPR185) src0(VGPR178) # 271: OpExtInst(Normalize): FloatVector3: tmp271 << tmp270 V_MUL_F32 vDst(VGPR178) src0(VGPR183) src1(VGPR183) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR184) src1(VGPR184) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR185) src1(VGPR185) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR178) src0(VGPR178) V_MUL_F32 vDst(VGPR179) src0(VGPR183) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR180) src0(VGPR184) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR181) src0(VGPR185) src1(VGPR178) // VOP2 # OpReturnValue: : << tmp271 S_MOV_B32 sDst(M0) src0(SGPR72) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR179) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR180) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR181) S_SETPC_B64 sDst(SGPR70) src0(SGPR70) # FloatVector3 estimateNormal(vf3;(FloatVector3* p) Function: FloatVector3 estimateNormal(vf3;() S_MOV_B64 sDst(SGPR126) src0(EXEC) # lb56 Label: lb56 # 274: OpAccessChain: Float*: p[0] # 275: OpLoad: Float: tmp275 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 276: OpFAdd: Float: tmp276 << tmp275, const229 V_MOV_B32 vDst(VGPR179) src0(LITERAL_CONST) const: 0x38d1b717 V_ADD_F32 vDst(VGPR180) src0(VGPR178) src1(VGPR179) // VOP2 # 277: OpAccessChain: Float*: p[1] # 278: OpLoad: Float: tmp278 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR1) # 279: OpAccessChain: Float*: p[2] # 280: OpLoad: Float: tmp280 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR179) src0(VGPR2) # 281: OpCompositeConstruct: FloatVector3: tmp281 << tmp276, tmp278, tmp280 V_MOV_B32 vDst(VGPR181) src0(VGPR180) V_MOV_B32 vDst(VGPR182) src0(VGPR178) V_MOV_B32 vDst(VGPR183) src0(VGPR179) # OpStore: : tmp281 >> param282 V_MOV_B32 vDst(VGPR61) src0(VGPR181) V_MOV_B32 vDst(VGPR62) src0(VGPR182) V_MOV_B32 vDst(VGPR63) src0(VGPR183) # 283: OpFunctionCall: Float: sceneSDF(vf3;(param282) S_ADD_U32 sDst(SGPR40) src0(LITERAL_CONST) src1(0) const: 0x3d # VGPR[235:237] S_MOV_B64 sDst(SGPR80) src0(EXEC) S_MOV_B32 sDst(SGPR37) src0(LITERAL_CONST) const: 0x4f # VGPR261 # Indirect branch to sceneSDF(vf3;: -1316 S_GETPC_B64 sDst(SGPR38) src0(SGPR38) S_SUB_U32 sDst(SGPR38) src0(SGPR38) src1(LITERAL_CONST) const: 0x524 S_SUBB_U32 sDst(SGPR39) src0(SGPR39) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR38) src0(SGPR38) S_MOV_B64 sDst(EXEC) src0(SGPR80) # .lbl8 # 284: OpAccessChain: Float*: p[0] # 285: OpLoad: Float: tmp285 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 286: OpFSub: Float: tmp286 << tmp285, const229 V_MOV_B32 vDst(VGPR179) src0(LITERAL_CONST) const: 0x38d1b717 V_SUB_F32 vDst(VGPR180) src0(VGPR178) src1(VGPR179) // VOP2 # 287: OpAccessChain: Float*: p[1] # 288: OpLoad: Float: tmp288 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR1) # 289: OpAccessChain: Float*: p[2] # 290: OpLoad: Float: tmp290 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR179) src0(VGPR2) # 291: OpCompositeConstruct: FloatVector3: tmp291 << tmp286, tmp288, tmp290 V_MOV_B32 vDst(VGPR181) src0(VGPR180) V_MOV_B32 vDst(VGPR182) src0(VGPR178) V_MOV_B32 vDst(VGPR183) src0(VGPR179) # OpStore: : tmp291 >> param292 V_MOV_B32 vDst(VGPR64) src0(VGPR181) V_MOV_B32 vDst(VGPR65) src0(VGPR182) V_MOV_B32 vDst(VGPR66) src0(VGPR183) # 293: OpFunctionCall: Float: sceneSDF(vf3;(param292) S_ADD_U32 sDst(SGPR40) src0(LITERAL_CONST) src1(0) const: 0x40 # VGPR[238:240] S_MOV_B64 sDst(SGPR82) src0(EXEC) S_MOV_B32 sDst(SGPR37) src0(LITERAL_CONST) const: 0x50 # VGPR270 # Indirect branch to sceneSDF(vf3;: -1436 S_GETPC_B64 sDst(SGPR38) src0(SGPR38) S_SUB_U32 sDst(SGPR38) src0(SGPR38) src1(LITERAL_CONST) const: 0x59c S_SUBB_U32 sDst(SGPR39) src0(SGPR39) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR38) src0(SGPR38) S_MOV_B64 sDst(EXEC) src0(SGPR82) # .lbl9 # 294: OpFSub: Float: tmp294 << sceneSDF(vf3;, sceneSDF(vf3; V_SUB_F32 vDst(VGPR81) src0(VGPR79) src1(VGPR80) // VOP2 # 295: OpAccessChain: Float*: p[0] # 296: OpLoad: Float: tmp296 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 297: OpAccessChain: Float*: p[1] # 298: OpLoad: Float: tmp298 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) # 299: OpFAdd: Float: tmp299 << tmp298, const229 V_MOV_B32 vDst(VGPR180) src0(LITERAL_CONST) const: 0x38d1b717 V_ADD_F32 vDst(VGPR181) src0(VGPR179) src1(VGPR180) // VOP2 # 300: OpAccessChain: Float*: p[2] # 301: OpLoad: Float: tmp301 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR179) src0(VGPR2) # 302: OpCompositeConstruct: FloatVector3: tmp302 << tmp296, tmp299, tmp301 V_MOV_B32 vDst(VGPR182) src0(VGPR178) V_MOV_B32 vDst(VGPR183) src0(VGPR181) V_MOV_B32 vDst(VGPR184) src0(VGPR179) # OpStore: : tmp302 >> param303 V_MOV_B32 vDst(VGPR67) src0(VGPR182) V_MOV_B32 vDst(VGPR68) src0(VGPR183) V_MOV_B32 vDst(VGPR69) src0(VGPR184) # 304: OpFunctionCall: Float: sceneSDF(vf3;(param303) S_ADD_U32 sDst(SGPR40) src0(LITERAL_CONST) src1(0) const: 0x43 # VGPR[241:243] S_MOV_B64 sDst(SGPR84) src0(EXEC) S_MOV_B32 sDst(SGPR37) src0(LITERAL_CONST) const: 0x52 # VGPR280 # Indirect branch to sceneSDF(vf3;: -1560 S_GETPC_B64 sDst(SGPR38) src0(SGPR38) S_SUB_U32 sDst(SGPR38) src0(SGPR38) src1(LITERAL_CONST) const: 0x618 S_SUBB_U32 sDst(SGPR39) src0(SGPR39) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR38) src0(SGPR38) S_MOV_B64 sDst(EXEC) src0(SGPR84) # .lbl10 # 305: OpAccessChain: Float*: p[0] # 306: OpLoad: Float: tmp306 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 307: OpAccessChain: Float*: p[1] # 308: OpLoad: Float: tmp308 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) # 309: OpFSub: Float: tmp309 << tmp308, const229 V_MOV_B32 vDst(VGPR180) src0(LITERAL_CONST) const: 0x38d1b717 V_SUB_F32 vDst(VGPR181) src0(VGPR179) src1(VGPR180) // VOP2 # 310: OpAccessChain: Float*: p[2] # 311: OpLoad: Float: tmp311 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR179) src0(VGPR2) # 312: OpCompositeConstruct: FloatVector3: tmp312 << tmp306, tmp309, tmp311 V_MOV_B32 vDst(VGPR182) src0(VGPR178) V_MOV_B32 vDst(VGPR183) src0(VGPR181) V_MOV_B32 vDst(VGPR184) src0(VGPR179) # OpStore: : tmp312 >> param313 V_MOV_B32 vDst(VGPR70) src0(VGPR182) V_MOV_B32 vDst(VGPR71) src0(VGPR183) V_MOV_B32 vDst(VGPR72) src0(VGPR184) # 314: OpFunctionCall: Float: sceneSDF(vf3;(param313) S_ADD_U32 sDst(SGPR40) src0(LITERAL_CONST) src1(0) const: 0x46 # VGPR[244:246] S_MOV_B64 sDst(SGPR86) src0(EXEC) S_MOV_B32 sDst(SGPR37) src0(LITERAL_CONST) const: 0x53 # VGPR289 # Indirect branch to sceneSDF(vf3;: -1680 S_GETPC_B64 sDst(SGPR38) src0(SGPR38) S_SUB_U32 sDst(SGPR38) src0(SGPR38) src1(LITERAL_CONST) const: 0x690 S_SUBB_U32 sDst(SGPR39) src0(SGPR39) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR38) src0(SGPR38) S_MOV_B64 sDst(EXEC) src0(SGPR86) # .lbl11 # 315: OpFSub: Float: tmp315 << sceneSDF(vf3;, sceneSDF(vf3; V_SUB_F32 vDst(VGPR84) src0(VGPR82) src1(VGPR83) // VOP2 # 316: OpAccessChain: Float*: p[0] # 317: OpLoad: Float: tmp317 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 318: OpAccessChain: Float*: p[1] # 319: OpLoad: Float: tmp319 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) # 320: OpAccessChain: Float*: p[2] # 321: OpLoad: Float: tmp321 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # 322: OpFAdd: Float: tmp322 << tmp321, const229 V_MOV_B32 vDst(VGPR181) src0(LITERAL_CONST) const: 0x38d1b717 V_ADD_F32 vDst(VGPR182) src0(VGPR180) src1(VGPR181) // VOP2 # 323: OpCompositeConstruct: FloatVector3: tmp323 << tmp317, tmp319, tmp322 V_MOV_B32 vDst(VGPR183) src0(VGPR178) V_MOV_B32 vDst(VGPR184) src0(VGPR179) V_MOV_B32 vDst(VGPR185) src0(VGPR182) # OpStore: : tmp323 >> param324 V_MOV_B32 vDst(VGPR73) src0(VGPR183) V_MOV_B32 vDst(VGPR74) src0(VGPR184) V_MOV_B32 vDst(VGPR75) src0(VGPR185) # 325: OpFunctionCall: Float: sceneSDF(vf3;(param324) S_ADD_U32 sDst(SGPR40) src0(LITERAL_CONST) src1(0) const: 0x49 # VGPR[247:249] S_MOV_B64 sDst(SGPR88) src0(EXEC) S_MOV_B32 sDst(SGPR37) src0(LITERAL_CONST) const: 0x55 # VGPR299 # Indirect branch to sceneSDF(vf3;: -1804 S_GETPC_B64 sDst(SGPR38) src0(SGPR38) S_SUB_U32 sDst(SGPR38) src0(SGPR38) src1(LITERAL_CONST) const: 0x70c S_SUBB_U32 sDst(SGPR39) src0(SGPR39) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR38) src0(SGPR38) S_MOV_B64 sDst(EXEC) src0(SGPR88) # .lbl12 # 326: OpAccessChain: Float*: p[0] # 327: OpLoad: Float: tmp327 << p[0] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 328: OpAccessChain: Float*: p[1] # 329: OpLoad: Float: tmp329 << p[1] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) # 330: OpAccessChain: Float*: p[2] # 331: OpLoad: Float: tmp331 << p[2] S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR78) const: 0x0 V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # 332: OpFSub: Float: tmp332 << tmp331, const229 V_MOV_B32 vDst(VGPR181) src0(LITERAL_CONST) const: 0x38d1b717 V_SUB_F32 vDst(VGPR182) src0(VGPR180) src1(VGPR181) // VOP2 # 333: OpCompositeConstruct: FloatVector3: tmp333 << tmp327, tmp329, tmp332 V_MOV_B32 vDst(VGPR183) src0(VGPR178) V_MOV_B32 vDst(VGPR184) src0(VGPR179) V_MOV_B32 vDst(VGPR185) src0(VGPR182) # OpStore: : tmp333 >> param334 V_MOV_B32 vDst(VGPR76) src0(VGPR183) V_MOV_B32 vDst(VGPR77) src0(VGPR184) V_MOV_B32 vDst(VGPR78) src0(VGPR185) # 335: OpFunctionCall: Float: sceneSDF(vf3;(param334) S_ADD_U32 sDst(SGPR40) src0(LITERAL_CONST) src1(0) const: 0x4c # VGPR[250:252] S_MOV_B64 sDst(SGPR90) src0(EXEC) S_MOV_B32 sDst(SGPR37) src0(LITERAL_CONST) const: 0x56 # VGPR308 # Indirect branch to sceneSDF(vf3;: -1924 S_GETPC_B64 sDst(SGPR38) src0(SGPR38) S_SUB_U32 sDst(SGPR38) src0(SGPR38) src1(LITERAL_CONST) const: 0x784 S_SUBB_U32 sDst(SGPR39) src0(SGPR39) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR38) src0(SGPR38) S_MOV_B64 sDst(EXEC) src0(SGPR90) # .lbl13 # 336: OpFSub: Float: tmp336 << sceneSDF(vf3;, sceneSDF(vf3; V_SUB_F32 vDst(VGPR178) src0(VGPR85) src1(VGPR86) // VOP2 # 337: OpCompositeConstruct: FloatVector3: tmp337 << tmp294, tmp315, tmp336 V_MOV_B32 vDst(VGPR179) src0(VGPR81) V_MOV_B32 vDst(VGPR180) src0(VGPR84) V_MOV_B32 vDst(VGPR181) src0(VGPR178) # 338: OpExtInst(Normalize): FloatVector3: tmp338 << tmp337 V_MUL_F32 vDst(VGPR178) src0(VGPR179) src1(VGPR179) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR180) src1(VGPR180) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR181) src1(VGPR181) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR178) src0(VGPR178) V_MUL_F32 vDst(VGPR182) src0(VGPR179) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR183) src0(VGPR180) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR184) src0(VGPR181) src1(VGPR178) // VOP2 # OpReturnValue: : << tmp338 S_MOV_B32 sDst(M0) src0(SGPR126) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR182) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR183) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR184) S_SETPC_B64 sDst(SGPR76) src0(SGPR76) # FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;(FloatVector3* k_d, FloatVector3* k_s, Float* alpha, FloatVector3* p, FloatVector3* eye, FloatVector3* lightPos, FloatVector3* lightIntensity) Function: FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;(, FloatVector3 estimateNormal(vf3;.k_s, Float estimateNormal(vf3;.alpha, FloatVector3 estimateNormal(vf3;.p, FloatVector3 estimateNormal(vf3;.eye, FloatVector3 estimateNormal(vf3;.lightPos, FloatVector3 estimateNormal(vf3;.lightIntensity) S_MOV_B64 sDst(SGPR94) src0(EXEC) # lb66 Label: lb66 # 343: OpLoad: FloatVector3: tmp343 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR79) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # OpStore: : tmp343 >> param342 V_MOV_B32 vDst(VGPR87) src0(VGPR178) V_MOV_B32 vDst(VGPR88) src0(VGPR179) V_MOV_B32 vDst(VGPR89) src0(VGPR180) # 344: OpFunctionCall: FloatVector3: estimateNormal(vf3;(param342) S_ADD_U32 sDst(SGPR78) src0(LITERAL_CONST) src1(0) const: 0x57 # VGPR[317:319] S_MOV_B64 sDst(SGPR96) src0(EXEC) S_MOV_B32 sDst(SGPR126) src0(LITERAL_CONST) const: 0x5a # VGPR[323:325] # Indirect branch to estimateNormal(vf3;: -856 S_GETPC_B64 sDst(SGPR76) src0(SGPR76) S_SUB_U32 sDst(SGPR76) src0(SGPR76) src1(LITERAL_CONST) const: 0x358 S_SUBB_U32 sDst(SGPR77) src0(SGPR77) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR76) src0(SGPR76) S_MOV_B64 sDst(EXEC) src0(SGPR96) # .lbl14 # 346: OpLoad: FloatVector3: tmp346 << lightPos S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR126) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # 347: OpLoad: FloatVector3: tmp347 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR79) const: 0x0 V_MOVRELS_B32 vDst(VGPR181) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR182) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR183) src0(VGPR2) # 348: OpFSub: FloatVector3: tmp348 << tmp346, tmp347 V_SUB_F32 vDst(VGPR184) src0(VGPR178) src1(VGPR181) // VOP2 V_SUB_F32 vDst(VGPR185) src0(VGPR179) src1(VGPR182) // VOP2 V_SUB_F32 vDst(VGPR186) src0(VGPR180) src1(VGPR183) // VOP2 # 349: OpExtInst(Normalize): FloatVector3: tmp349 << tmp348 V_MUL_F32 vDst(VGPR178) src0(VGPR184) src1(VGPR184) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR185) src1(VGPR185) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR186) src1(VGPR186) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR178) src0(VGPR178) V_MUL_F32 vDst(VGPR179) src0(VGPR184) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR180) src0(VGPR185) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR181) src0(VGPR186) src1(VGPR178) // VOP2 # 351: OpLoad: FloatVector3: tmp351 << eye S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR127) const: 0x0 V_MOVRELS_B32 vDst(VGPR182) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR183) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR184) src0(VGPR2) # 352: OpLoad: FloatVector3: tmp352 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR79) const: 0x0 V_MOVRELS_B32 vDst(VGPR185) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR186) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR187) src0(VGPR2) # 353: OpFSub: FloatVector3: tmp353 << tmp351, tmp352 V_SUB_F32 vDst(VGPR188) src0(VGPR182) src1(VGPR185) // VOP2 V_SUB_F32 vDst(VGPR189) src0(VGPR183) src1(VGPR186) // VOP2 V_SUB_F32 vDst(VGPR190) src0(VGPR184) src1(VGPR187) // VOP2 # 354: OpExtInst(Normalize): FloatVector3: tmp354 << tmp353 V_MUL_F32 vDst(VGPR178) src0(VGPR188) src1(VGPR188) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR189) src1(VGPR189) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR190) src1(VGPR190) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR178) src0(VGPR178) V_MUL_F32 vDst(VGPR182) src0(VGPR188) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR183) src0(VGPR189) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR184) src0(VGPR190) src1(VGPR178) // VOP2 # 357: OpFNegate: FloatVector3: tmp357 << tmp349 V_MUL_F32 vDst(VGPR185) src0(M1_0_F) src1(VGPR179) // VOP2 V_MUL_F32 vDst(VGPR186) src0(M1_0_F) src1(VGPR180) // VOP2 V_MUL_F32 vDst(VGPR187) src0(M1_0_F) src1(VGPR181) // VOP2 # 359: OpExtInst(Reflect): FloatVector3: tmp359 << tmp357, estimateNormal(vf3; V_MUL_F32 vDst(VGPR178) src0(VGPR185) src1(VGPR90) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR186) src1(VGPR91) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR187) src1(VGPR92) // VOP2 V_MUL_F32 vDst(VGPR178) src0(2_0_F) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR188) src0(VGPR90) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR189) src0(VGPR91) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR190) src0(VGPR92) src1(VGPR178) // VOP2 V_SUB_F32 vDst(VGPR188) src0(VGPR185) src1(VGPR188) // VOP2 V_SUB_F32 vDst(VGPR189) src0(VGPR186) src1(VGPR189) // VOP2 V_SUB_F32 vDst(VGPR190) src0(VGPR187) src1(VGPR190) // VOP2 # 360: OpExtInst(Normalize): FloatVector3: tmp360 << tmp359 V_MUL_F32 vDst(VGPR178) src0(VGPR188) src1(VGPR188) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR189) src1(VGPR189) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR190) src1(VGPR190) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR178) src0(VGPR178) V_MUL_F32 vDst(VGPR185) src0(VGPR188) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR186) src0(VGPR189) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR187) src0(VGPR190) src1(VGPR178) // VOP2 # 364: OpDot: Float: tmp364 << tmp349, estimateNormal(vf3; V_MUL_F32 vDst(VGPR178) src0(VGPR179) src1(VGPR90) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR180) src1(VGPR91) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR181) src1(VGPR92) // VOP2 # 368: OpDot: Float: tmp368 << tmp360, tmp354 V_MUL_F32 vDst(VGPR179) src0(VGPR185) src1(VGPR182) // VOP2 V_MAC_F32 vDst(VGPR179) src0(VGPR186) src1(VGPR183) // VOP2 V_MAC_F32 vDst(VGPR179) src0(VGPR187) src1(VGPR184) // VOP2 # 370: OpFOrdLessThan: Bool: tmp370 << tmp364, const96 V_MOV_B32 vDst(VGPR180) src0(LITERAL_CONST) const: 0x00000000 V_CMP_LT_F32 dst(SGPR128) src0(VGPR178) src1(VGPR180) // VOP3a # OpSelectionMerge: (merge: lb372) # CF Block: Merge: lb372 S_MOV_B64 sDst(SGPR130) src0(EXEC) # OpBranchConditional: if(tmp370) then branch to lb371, else branch to lb372 # CF Block: Cond Branch: true: lb371, false: lb372 S_AND_B64 sDst(EXEC) src0(SGPR128) src1(EXEC) S_CBRANCH_EXECZ 11 lb372 # lb371 Label: lb371 # OpReturnValue: : << const373 S_MOV_B32 sDst(SGPR132) src0(LITERAL_CONST) const: 0x0 S_MOV_B32 sDst(SGPR133) src0(LITERAL_CONST) const: 0x0 S_MOV_B32 sDst(SGPR134) src0(LITERAL_CONST) const: 0x0 S_MOV_B32 sDst(M0) src0(SGPR128) V_MOVRELD_B32 vDst(VGPR0) src0(SGPR132) V_MOVRELD_B32 vDst(VGPR1) src0(SGPR133) V_MOVRELD_B32 vDst(VGPR2) src0(SGPR134) S_ANDN2_B64 sDst(SGPR94) src0(SGPR94) src1(EXEC) # lb372 Label: lb372 # CF Merge Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR130) S_AND_B64 sDst(EXEC) src0(EXEC) src1(SGPR94) # 376: OpFOrdLessThan: Bool: tmp376 << tmp368, const96 V_MOV_B32 vDst(VGPR180) src0(LITERAL_CONST) const: 0x00000000 V_CMP_LT_F32 dst(SGPR130) src0(VGPR179) src1(VGPR180) // VOP3a # OpSelectionMerge: (merge: lb378) # CF Block: Merge: lb378 S_MOV_B64 sDst(SGPR132) src0(EXEC) # OpBranchConditional: if(tmp376) then branch to lb377, else branch to lb378 # CF Block: Cond Branch: true: lb377, false: lb378 S_AND_B64 sDst(EXEC) src0(SGPR130) src1(EXEC) S_CBRANCH_EXECZ 21 lb378 # lb377 Label: lb377 # 379: OpLoad: FloatVector3: tmp379 << lightIntensity S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR129) const: 0x0 V_MOVRELS_B32 vDst(VGPR180) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR181) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR182) src0(VGPR2) # 380: OpLoad: FloatVector3: tmp380 << k_d S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR130) const: 0x0 V_MOVRELS_B32 vDst(VGPR183) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR184) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR185) src0(VGPR2) # 382: OpVectorTimesScalar: FloatVector3: tmp382 << tmp380, tmp364 V_MUL_F32 vDst(VGPR186) src0(VGPR178) src1(VGPR183) // VOP2 V_MUL_F32 vDst(VGPR187) src0(VGPR178) src1(VGPR184) // VOP2 V_MUL_F32 vDst(VGPR188) src0(VGPR178) src1(VGPR185) // VOP2 # 383: OpFMul: FloatVector3: tmp383 << tmp379, tmp382 V_MUL_F32 vDst(VGPR183) src0(VGPR180) src1(VGPR186) // VOP2 V_MUL_F32 vDst(VGPR184) src0(VGPR181) src1(VGPR187) // VOP2 V_MUL_F32 vDst(VGPR185) src0(VGPR182) src1(VGPR188) // VOP2 # OpReturnValue: : << tmp383 S_MOV_B32 sDst(M0) src0(SGPR128) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR183) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR184) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR185) S_ANDN2_B64 sDst(SGPR94) src0(SGPR94) src1(EXEC) # lb378 Label: lb378 # CF Merge Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR132) S_AND_B64 sDst(EXEC) src0(EXEC) src1(SGPR94) # 385: OpLoad: FloatVector3: tmp385 << lightIntensity S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR129) const: 0x0 V_MOVRELS_B32 vDst(VGPR180) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR181) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR182) src0(VGPR2) # 386: OpLoad: FloatVector3: tmp386 << k_d S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR130) const: 0x0 V_MOVRELS_B32 vDst(VGPR183) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR184) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR185) src0(VGPR2) # 388: OpVectorTimesScalar: FloatVector3: tmp388 << tmp386, tmp364 V_MUL_F32 vDst(VGPR186) src0(VGPR178) src1(VGPR183) // VOP2 V_MUL_F32 vDst(VGPR187) src0(VGPR178) src1(VGPR184) // VOP2 V_MUL_F32 vDst(VGPR188) src0(VGPR178) src1(VGPR185) // VOP2 # 389: OpLoad: FloatVector3: tmp389 << k_s S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR131) const: 0x0 V_MOVRELS_B32 vDst(VGPR183) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR184) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR185) src0(VGPR2) # 391: OpLoad: Float: tmp391 << alpha S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR132) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # 392: OpExtInst(Pow): Float: tmp392 << tmp368, tmp391 V_LOG_F32 vDst(VGPR189) src0(VGPR179) V_MUL_F32 vDst(VGPR189) src0(VGPR178) src1(VGPR189) // VOP2 V_EXP_F32 vDst(VGPR189) src0(VGPR189) # 393: OpVectorTimesScalar: FloatVector3: tmp393 << tmp389, tmp392 V_MUL_F32 vDst(VGPR190) src0(VGPR189) src1(VGPR183) // VOP2 V_MUL_F32 vDst(VGPR191) src0(VGPR189) src1(VGPR184) // VOP2 V_MUL_F32 vDst(VGPR192) src0(VGPR189) src1(VGPR185) // VOP2 # 394: OpFAdd: FloatVector3: tmp394 << tmp388, tmp393 V_ADD_F32 vDst(VGPR183) src0(VGPR186) src1(VGPR190) // VOP2 V_ADD_F32 vDst(VGPR184) src0(VGPR187) src1(VGPR191) // VOP2 V_ADD_F32 vDst(VGPR185) src0(VGPR188) src1(VGPR192) // VOP2 # 395: OpFMul: FloatVector3: tmp395 << tmp385, tmp394 V_MUL_F32 vDst(VGPR186) src0(VGPR180) src1(VGPR183) // VOP2 V_MUL_F32 vDst(VGPR187) src0(VGPR181) src1(VGPR184) // VOP2 V_MUL_F32 vDst(VGPR188) src0(VGPR182) src1(VGPR185) // VOP2 # OpReturnValue: : << tmp395 S_MOV_B32 sDst(M0) src0(SGPR128) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR186) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR187) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR188) S_SETPC_B64 sDst(SGPR92) src0(SGPR92) # FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;(FloatVector3* k_a, FloatVector3* k_d, FloatVector3* k_s, Float* alpha, FloatVector3* p, FloatVector3* eye) Function: FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;(, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_d, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.k_s, Float phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.alpha, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.p, FloatVector3 phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;.eye) S_MOV_B64 sDst(SGPR134) src0(EXEC) # lb75 Label: lb75 # 401: OpLoad: FloatVector3: tmp401 << k_a S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR101) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # 402: OpFMul: FloatVector3: tmp402 << const400, tmp401 V_MOV_B32 vDst(VGPR181) src0(0_5_F) V_MOV_B32 vDst(VGPR182) src0(0_5_F) V_MOV_B32 vDst(VGPR183) src0(0_5_F) V_MUL_F32 vDst(VGPR184) src0(VGPR181) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR185) src0(VGPR182) src1(VGPR179) // VOP2 V_MUL_F32 vDst(VGPR186) src0(VGPR183) src1(VGPR180) // VOP2 # OpStore: : tmp402 >> color V_MOV_B32 vDst(VGPR93) src0(VGPR184) V_MOV_B32 vDst(VGPR94) src0(VGPR185) V_MOV_B32 vDst(VGPR95) src0(VGPR186) # 411: OpLoad: FloatVector3: tmp411 << k_d S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR102) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # OpStore: : tmp411 >> param410 V_MOV_B32 vDst(VGPR96) src0(VGPR178) V_MOV_B32 vDst(VGPR97) src0(VGPR179) V_MOV_B32 vDst(VGPR98) src0(VGPR180) # 413: OpLoad: FloatVector3: tmp413 << k_s S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR103) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # OpStore: : tmp413 >> param412 V_MOV_B32 vDst(VGPR99) src0(VGPR178) V_MOV_B32 vDst(VGPR100) src0(VGPR179) V_MOV_B32 vDst(VGPR101) src0(VGPR180) # 415: OpLoad: Float: tmp415 << alpha S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR104) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) # OpStore: : tmp415 >> param414 V_MOV_B32 vDst(VGPR102) src0(VGPR178) # 417: OpLoad: FloatVector3: tmp417 << p S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR105) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # OpStore: : tmp417 >> param416 V_MOV_B32 vDst(VGPR103) src0(VGPR178) V_MOV_B32 vDst(VGPR104) src0(VGPR179) V_MOV_B32 vDst(VGPR105) src0(VGPR180) # 419: OpLoad: FloatVector3: tmp419 << eye S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR106) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # OpStore: : tmp419 >> param418 V_MOV_B32 vDst(VGPR106) src0(VGPR178) V_MOV_B32 vDst(VGPR107) src0(VGPR179) V_MOV_B32 vDst(VGPR108) src0(VGPR180) # OpStore: : const406 >> param420 S_MOV_B32 sDst(SGPR133) src0(LITERAL_CONST) const: 0x40c00000 S_MOV_B32 sDst(SGPR134) src0(2_0_F) S_MOV_B32 sDst(SGPR135) src0(4_0_F) V_MOV_B32 vDst(VGPR109) src0(SGPR133) V_MOV_B32 vDst(VGPR110) src0(SGPR134) V_MOV_B32 vDst(VGPR111) src0(SGPR135) # OpStore: : const409 >> param422 S_MOV_B32 sDst(SGPR133) src0(LITERAL_CONST) const: 0x3ecccccd S_MOV_B32 sDst(SGPR134) src0(LITERAL_CONST) const: 0x3ecccccd S_MOV_B32 sDst(SGPR135) src0(LITERAL_CONST) const: 0x3ecccccd V_MOV_B32 vDst(VGPR112) src0(SGPR133) V_MOV_B32 vDst(VGPR113) src0(SGPR134) V_MOV_B32 vDst(VGPR114) src0(SGPR135) # 424: OpFunctionCall: FloatVector3: phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;(param410, param412, param414, param416, param418, param420, param422) S_ADD_U32 sDst(SGPR130) src0(LITERAL_CONST) src1(0) const: 0x60 # VGPR[408:410] S_ADD_U32 sDst(SGPR131) src0(LITERAL_CONST) src1(0) const: 0x63 # VGPR[411:413] S_ADD_U32 sDst(SGPR132) src0(LITERAL_CONST) src1(0) const: 0x66 # VGPR414 S_ADD_U32 sDst(SGPR79) src0(LITERAL_CONST) src1(0) const: 0x67 # VGPR[415:417] S_ADD_U32 sDst(SGPR127) src0(LITERAL_CONST) src1(0) const: 0x6a # VGPR[418:420] S_ADD_U32 sDst(SGPR126) src0(LITERAL_CONST) src1(0) const: 0x6d # VGPR[421:423] S_ADD_U32 sDst(SGPR129) src0(LITERAL_CONST) src1(0) const: 0x70 # VGPR[424:426] S_MOV_B64 sDst(SGPR108) src0(EXEC) S_MOV_B32 sDst(SGPR128) src0(LITERAL_CONST) const: 0x73 # VGPR[455:457] # Indirect branch to phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3;: -1040 S_GETPC_B64 sDst(SGPR92) src0(SGPR92) S_SUB_U32 sDst(SGPR92) src0(SGPR92) src1(LITERAL_CONST) const: 0x410 S_SUBB_U32 sDst(SGPR93) src0(SGPR93) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR92) src0(SGPR92) S_MOV_B64 sDst(EXEC) src0(SGPR108) # .lbl15 # 425: OpLoad: FloatVector3: tmp425 << color # 426: OpFAdd: FloatVector3: tmp426 << tmp425, phongContribForLight(vf3;vf3;f1;vf3;vf3;vf3;vf3; V_ADD_F32 vDst(VGPR178) src0(VGPR93) src1(VGPR115) // VOP2 V_ADD_F32 vDst(VGPR179) src0(VGPR94) src1(VGPR116) // VOP2 V_ADD_F32 vDst(VGPR180) src0(VGPR95) src1(VGPR117) // VOP2 # OpStore: : tmp426 >> color V_MOV_B32 vDst(VGPR93) src0(VGPR178) V_MOV_B32 vDst(VGPR94) src0(VGPR179) V_MOV_B32 vDst(VGPR95) src0(VGPR180) # 427: OpLoad: FloatVector3: tmp427 << color # OpReturnValue: : << tmp427 S_MOV_B32 sDst(M0) src0(SGPR100) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR93) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR94) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR95) S_SETPC_B64 sDst(SGPR98) src0(SGPR98) # FloatMatrix3x3 viewMatrix(vf3;vf3;vf3;(FloatVector3* eye, FloatVector3* center, FloatVector3* up) Function: FloatMatrix3x3 viewMatrix(vf3;vf3;vf3;(, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.center, FloatVector3 phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;.up) S_MOV_B64 sDst(SGPR136) src0(EXEC) # lb81 Label: lb81 # 431: OpLoad: FloatVector3: tmp431 << center S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR113) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR180) src0(VGPR2) # 432: OpLoad: FloatVector3: tmp432 << eye S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR112) const: 0x0 V_MOVRELS_B32 vDst(VGPR181) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR182) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR183) src0(VGPR2) # 433: OpFSub: FloatVector3: tmp433 << tmp431, tmp432 V_SUB_F32 vDst(VGPR184) src0(VGPR178) src1(VGPR181) // VOP2 V_SUB_F32 vDst(VGPR185) src0(VGPR179) src1(VGPR182) // VOP2 V_SUB_F32 vDst(VGPR186) src0(VGPR180) src1(VGPR183) // VOP2 # 434: OpExtInst(Normalize): FloatVector3: tmp434 << tmp433 V_MUL_F32 vDst(VGPR178) src0(VGPR184) src1(VGPR184) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR185) src1(VGPR185) // VOP2 V_MAC_F32 vDst(VGPR178) src0(VGPR186) src1(VGPR186) // VOP2 V_RSQ_CLAMP_F32 vDst(VGPR178) src0(VGPR178) V_MUL_F32 vDst(VGPR179) src0(VGPR184) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR180) src0(VGPR185) src1(VGPR178) // VOP2 V_MUL_F32 vDst(VGPR181) src0(VGPR186) src1(VGPR178) // VOP2 # 437: OpLoad: FloatVector3: tmp437 << up S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR114) const: 0x0 V_MOVRELS_B32 vDst(VGPR182) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR183) src0(VGPR1) V_MOVRELS_B32 vDst(VGPR184) src0(VGPR2) # 438: OpExtInst(Cross): FloatVector3: tmp438 << tmp434, tmp437 V_MUL_F32 vDst(VGPR185) src0(VGPR180) src1(VGPR184) // VOP2 V_MUL_F32 vDst(VGPR186) src0(VGPR181) src1(VGPR182) // VOP2 V_MUL_F32 vDst(VGPR187) src0(VGPR179) src1(VGPR183) // VOP2 V_MAC_F32 vDst(VGPR185) src0(VGPR181) src1(VGPR183) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a V_MAC_F32 vDst(VGPR186) src0(VGPR179) src1(VGPR184) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a V_MAC_F32 vDst(VGPR187) src0(VGPR180) src1(VGPR182) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a # 442: OpExtInst(Cross): FloatVector3: tmp442 << tmp438, tmp434 V_MUL_F32 vDst(VGPR182) src0(VGPR186) src1(VGPR181) // VOP2 V_MUL_F32 vDst(VGPR183) src0(VGPR187) src1(VGPR179) // VOP2 V_MUL_F32 vDst(VGPR184) src0(VGPR185) src1(VGPR180) // VOP2 V_MAC_F32 vDst(VGPR182) src0(VGPR187) src1(VGPR180) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a V_MAC_F32 vDst(VGPR183) src0(VGPR185) src1(VGPR181) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a V_MAC_F32 vDst(VGPR184) src0(VGPR186) src1(VGPR179) src2(N/A) abs(0) clamp(0) omod(0) neg(1) // VOP3a # 446: OpFNegate: FloatVector3: tmp446 << tmp434 V_MUL_F32 vDst(VGPR188) src0(M1_0_F) src1(VGPR179) // VOP2 V_MUL_F32 vDst(VGPR189) src0(M1_0_F) src1(VGPR180) // VOP2 V_MUL_F32 vDst(VGPR190) src0(M1_0_F) src1(VGPR181) // VOP2 # 447: OpCompositeExtract: Float: tmp447 << tmp438, 0 V_MOV_B32 vDst(VGPR178) src0(VGPR185) # 448: OpCompositeExtract: Float: tmp448 << tmp438, 1 V_MOV_B32 vDst(VGPR179) src0(VGPR186) # 449: OpCompositeExtract: Float: tmp449 << tmp438, 2 V_MOV_B32 vDst(VGPR180) src0(VGPR187) # 450: OpCompositeExtract: Float: tmp450 << tmp442, 0 V_MOV_B32 vDst(VGPR181) src0(VGPR182) # 451: OpCompositeExtract: Float: tmp451 << tmp442, 1 V_MOV_B32 vDst(VGPR185) src0(VGPR183) # 452: OpCompositeExtract: Float: tmp452 << tmp442, 2 V_MOV_B32 vDst(VGPR186) src0(VGPR184) # 453: OpCompositeExtract: Float: tmp453 << tmp446, 0 V_MOV_B32 vDst(VGPR182) src0(VGPR188) # 454: OpCompositeExtract: Float: tmp454 << tmp446, 1 V_MOV_B32 vDst(VGPR183) src0(VGPR189) # 455: OpCompositeExtract: Float: tmp455 << tmp446, 2 V_MOV_B32 vDst(VGPR184) src0(VGPR190) # 456: OpCompositeConstruct: FloatVector3: tmp456 << tmp447, tmp448, tmp449 V_MOV_B32 vDst(VGPR187) src0(VGPR178) V_MOV_B32 vDst(VGPR188) src0(VGPR179) V_MOV_B32 vDst(VGPR189) src0(VGPR180) # 457: OpCompositeConstruct: FloatVector3: tmp457 << tmp450, tmp451, tmp452 V_MOV_B32 vDst(VGPR190) src0(VGPR181) V_MOV_B32 vDst(VGPR191) src0(VGPR185) V_MOV_B32 vDst(VGPR192) src0(VGPR186) # 458: OpCompositeConstruct: FloatVector3: tmp458 << tmp453, tmp454, tmp455 V_MOV_B32 vDst(VGPR178) src0(VGPR182) V_MOV_B32 vDst(VGPR179) src0(VGPR183) V_MOV_B32 vDst(VGPR180) src0(VGPR184) # 459: OpCompositeConstruct: FloatMatrix3x3: tmp459 << tmp456, tmp457, tmp458 V_MOV_B32 vDst(VGPR193) src0(VGPR187) V_MOV_B32 vDst(VGPR194) src0(VGPR188) V_MOV_B32 vDst(VGPR195) src0(VGPR189) V_MOV_B32 vDst(VGPR196) src0(VGPR190) V_MOV_B32 vDst(VGPR197) src0(VGPR191) V_MOV_B32 vDst(VGPR198) src0(VGPR192) V_MOV_B32 vDst(VGPR199) src0(VGPR178) V_MOV_B32 vDst(VGPR200) src0(VGPR179) V_MOV_B32 vDst(VGPR201) src0(VGPR180) # OpReturnValue: : << tmp459 S_MOV_B32 sDst(M0) src0(SGPR107) V_MOVRELD_B32 vDst(VGPR0) src0(VGPR193) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR194) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR195) V_MOVRELD_B32 vDst(VGPR3) src0(VGPR196) V_MOVRELD_B32 vDst(VGPR4) src0(VGPR197) V_MOVRELD_B32 vDst(VGPR5) src0(VGPR198) V_MOVRELD_B32 vDst(VGPR6) src0(VGPR199) V_MOVRELD_B32 vDst(VGPR7) src0(VGPR200) V_MOVRELD_B32 vDst(VGPR8) src0(VGPR201) S_SETPC_B64 sDst(SGPR110) src0(SGPR110) # Void mainImage(vf4;vf2;(FloatVector4* fragColor, FloatVector2* fragCoord) Function: Void mainImage(vf4;vf2;(, FloatVector2 main.fragCoord) S_MOV_B64 sDst(SGPR116) src0(EXEC) # lb88 Label: lb88 # OpStore: : const463 >> param466 S_MOV_B32 sDst(SGPR126) src0(LITERAL_CONST) const: 0x42340000 V_MOV_B32 vDst(VGPR118) src0(SGPR126) # 468: OpLoad: FloatVector3: tmp468 << iResolution S_LOAD_DWORDX2_IMM offset(0) sBase(SGPR[0:1]) sDst(SGPR[126:127]) S_WAITCNT 0 S_LOAD_DWORD_IMM offset(8) sBase(SGPR[0:1]) sDst(SGPR128) S_WAITCNT 0 # 469: OpVectorShuffle: FloatVector2: tmp469 << tmp468, tmp468, 0, 1 S_MOV_B32 sDst(SGPR129) src0(SGPR126) S_MOV_B32 sDst(SGPR130) src0(SGPR127) # OpStore: : tmp469 >> param467 V_MOV_B32 vDst(VGPR119) src0(SGPR129) V_MOV_B32 vDst(VGPR120) src0(SGPR130) # 471: OpLoad: FloatVector2: tmp471 << fragCoord S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR12) const: 0x0 V_MOVRELS_B32 vDst(VGPR178) src0(VGPR0) V_MOVRELS_B32 vDst(VGPR179) src0(VGPR1) # OpStore: : tmp471 >> param470 V_MOV_B32 vDst(VGPR121) src0(VGPR178) V_MOV_B32 vDst(VGPR122) src0(VGPR179) # 472: OpFunctionCall: FloatVector3: rayDirection(f1;vf2;vf2;(param466, param467, param470) S_ADD_U32 sDst(SGPR73) src0(LITERAL_CONST) src1(0) const: 0x76 # VGPR513 S_ADD_U32 sDst(SGPR74) src0(LITERAL_CONST) src1(0) const: 0x77 # VGPR[514:515] S_ADD_U32 sDst(SGPR75) src0(LITERAL_CONST) src1(0) const: 0x79 # VGPR[516:517] S_MOV_B64 sDst(SGPR118) src0(EXEC) S_MOV_B32 sDst(SGPR72) src0(LITERAL_CONST) const: 0x9c # VGPR[556:558] # Indirect branch to rayDirection(f1;vf2;vf2;: -2624 S_GETPC_B64 sDst(SGPR70) src0(SGPR70) S_SUB_U32 sDst(SGPR70) src0(SGPR70) src1(LITERAL_CONST) const: 0xa40 S_SUBB_U32 sDst(SGPR71) src0(SGPR71) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR70) src0(SGPR70) S_MOV_B64 sDst(EXEC) src0(SGPR118) # .lbl16 # 479: OpLoad: Float: tmp479 << iTime S_LOAD_DWORD_IMM offset(12) sBase(SGPR[0:1]) sDst(SGPR126) S_WAITCNT 0 # 480: OpFMul: Float: tmp480 << const476, tmp479 V_MOV_B32 vDst(VGPR178) src0(LITERAL_CONST) const: 0x3e4ccccd V_MOV_B32 vDst(VGPR179) src0(SGPR126) V_MUL_F32 vDst(VGPR180) src0(VGPR178) src1(VGPR179) // VOP2 # 481: OpExtInst(Sin): Float: tmp481 << tmp480 V_MUL_F32 vDst(VGPR178) src0(LITERAL_CONST) src1(VGPR180) // VOP2 const: 0x3e22f983 V_FRACT_F32 vDst(VGPR178) src0(VGPR178) V_SIN_F32 vDst(VGPR178) src0(VGPR178) # 482: OpFMul: Float: tmp482 << const475, tmp481 V_MOV_B32 vDst(VGPR179) src0(LITERAL_CONST) const: 0x40a00000 V_MUL_F32 vDst(VGPR180) src0(VGPR179) src1(VGPR178) // VOP2 # 484: OpCompositeConstruct: FloatVector3: tmp484 << const474, tmp482, const483 S_MOV_B32 sDst(SGPR126) src0(LITERAL_CONST) const: 0x41000000 V_MOV_B32 vDst(VGPR159) src0(SGPR126) V_MOV_B32 vDst(VGPR160) src0(VGPR180) S_MOV_B32 sDst(SGPR126) src0(LITERAL_CONST) const: 0x40e00000 V_MOV_B32 vDst(VGPR161) src0(SGPR126) # OpStore: : tmp484 >> param488 V_MOV_B32 vDst(VGPR123) src0(VGPR159) V_MOV_B32 vDst(VGPR124) src0(VGPR160) V_MOV_B32 vDst(VGPR125) src0(VGPR161) # OpStore: : const373 >> param490 S_MOV_B32 sDst(SGPR126) src0(LITERAL_CONST) const: 0x0 S_MOV_B32 sDst(SGPR127) src0(LITERAL_CONST) const: 0x0 S_MOV_B32 sDst(SGPR128) src0(LITERAL_CONST) const: 0x0 V_MOV_B32 vDst(VGPR126) src0(SGPR126) V_MOV_B32 vDst(VGPR127) src0(SGPR127) V_MOV_B32 vDst(VGPR128) src0(SGPR128) # OpStore: : const487 >> param491 S_MOV_B32 sDst(SGPR126) src0(LITERAL_CONST) const: 0x0 S_MOV_B32 sDst(SGPR127) src0(1_0_F) S_MOV_B32 sDst(SGPR128) src0(LITERAL_CONST) const: 0x0 V_MOV_B32 vDst(VGPR129) src0(SGPR126) V_MOV_B32 vDst(VGPR130) src0(SGPR127) V_MOV_B32 vDst(VGPR131) src0(SGPR128) # 492: OpFunctionCall: FloatMatrix3x3: viewMatrix(vf3;vf3;vf3;(param488, param490, param491) S_ADD_U32 sDst(SGPR112) src0(LITERAL_CONST) src1(0) const: 0x7b # VGPR[518:520] S_ADD_U32 sDst(SGPR113) src0(LITERAL_CONST) src1(0) const: 0x7e # VGPR[521:523] S_ADD_U32 sDst(SGPR114) src0(LITERAL_CONST) src1(0) const: 0x81 # VGPR[524:526] S_MOV_B64 sDst(SGPR120) src0(EXEC) S_MOV_B32 sDst(SGPR107) src0(LITERAL_CONST) const: 0xa2 # VGPR[576:584] # Indirect branch to viewMatrix(vf3;vf3;vf3;: -688 S_GETPC_B64 sDst(SGPR110) src0(SGPR110) S_SUB_U32 sDst(SGPR110) src0(SGPR110) src1(LITERAL_CONST) const: 0x2b0 S_SUBB_U32 sDst(SGPR111) src0(SGPR111) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR110) src0(SGPR110) S_MOV_B64 sDst(EXEC) src0(SGPR120) # .lbl17 # 496: OpMatrixTimesVector: FloatVector3: tmp496 << viewMatrix(vf3;vf3;vf3;, rayDirection(f1;vf2;vf2; V_MUL_F32 vDst(VGPR171) src0(VGPR162) src1(VGPR156) // VOP2 V_MUL_F32 vDst(VGPR172) src0(VGPR163) src1(VGPR156) // VOP2 V_MUL_F32 vDst(VGPR173) src0(VGPR164) src1(VGPR156) // VOP2 V_MAC_F32 vDst(VGPR171) src0(VGPR165) src1(VGPR157) // VOP2 V_MAC_F32 vDst(VGPR172) src0(VGPR166) src1(VGPR157) // VOP2 V_MAC_F32 vDst(VGPR173) src0(VGPR167) src1(VGPR157) // VOP2 V_MAC_F32 vDst(VGPR171) src0(VGPR168) src1(VGPR158) // VOP2 V_MAC_F32 vDst(VGPR172) src0(VGPR169) src1(VGPR158) // VOP2 V_MAC_F32 vDst(VGPR173) src0(VGPR170) src1(VGPR158) // VOP2 # OpStore: : tmp484 >> param499 V_MOV_B32 vDst(VGPR132) src0(VGPR159) V_MOV_B32 vDst(VGPR133) src0(VGPR160) V_MOV_B32 vDst(VGPR134) src0(VGPR161) # OpStore: : tmp496 >> param501 V_MOV_B32 vDst(VGPR135) src0(VGPR171) V_MOV_B32 vDst(VGPR136) src0(VGPR172) V_MOV_B32 vDst(VGPR137) src0(VGPR173) # OpStore: : const96 >> param503 S_MOV_B32 sDst(SGPR126) src0(LITERAL_CONST) const: 0x0 V_MOV_B32 vDst(VGPR138) src0(SGPR126) # OpStore: : const498 >> param504 S_MOV_B32 sDst(SGPR126) src0(LITERAL_CONST) const: 0x42c80000 V_MOV_B32 vDst(VGPR139) src0(SGPR126) # 505: OpFunctionCall: Float: shortestDistanceToSurface(vf3;vf3;f1;f1;(param499, param501, param503, param504) S_ADD_U32 sDst(SGPR56) src0(LITERAL_CONST) src1(0) const: 0x84 # VGPR[527:529] S_ADD_U32 sDst(SGPR57) src0(LITERAL_CONST) src1(0) const: 0x87 # VGPR[530:532] S_ADD_U32 sDst(SGPR58) src0(LITERAL_CONST) src1(0) const: 0x8a # VGPR533 S_ADD_U32 sDst(SGPR59) src0(LITERAL_CONST) src1(0) const: 0x8b # VGPR534 S_MOV_B64 sDst(SGPR122) src0(EXEC) S_MOV_B32 sDst(SGPR41) src0(LITERAL_CONST) const: 0xae # VGPR590 # Indirect branch to shortestDistanceToSurface(vf3;vf3;f1;f1;: -3388 S_GETPC_B64 sDst(SGPR54) src0(SGPR54) S_SUB_U32 sDst(SGPR54) src0(SGPR54) src1(LITERAL_CONST) const: 0xd3c S_SUBB_U32 sDst(SGPR55) src0(SGPR55) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR54) src0(SGPR54) S_MOV_B64 sDst(EXEC) src0(SGPR122) # .lbl18 # 508: OpFOrdGreaterThan: Bool: tmp508 << shortestDistanceToSurface(vf3;vf3;f1;f1;, const507 V_MOV_B32 vDst(VGPR178) src0(LITERAL_CONST) const: 0x42c7fff3 V_CMP_GT_F32 dst(SGPR126) src0(VGPR174) src1(VGPR178) // VOP3a # OpSelectionMerge: (merge: lb510) # CF Block: Merge: lb510 S_MOV_B64 sDst(SGPR128) src0(EXEC) # OpBranchConditional: if(tmp508) then branch to lb509, else branch to lb510 # CF Block: Cond Branch: true: lb509, false: lb510 S_AND_B64 sDst(EXEC) src0(SGPR126) src1(EXEC) S_CBRANCH_EXECZ 15 lb510 # lb509 Label: lb509 # OpStore: : const511 >> fragColor S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR9) const: 0x0 S_MOV_B32 sDst(SGPR130) src0(LITERAL_CONST) const: 0x0 S_MOV_B32 sDst(SGPR131) src0(LITERAL_CONST) const: 0x0 S_MOV_B32 sDst(SGPR132) src0(LITERAL_CONST) const: 0x0 S_MOV_B32 sDst(SGPR133) src0(LITERAL_CONST) const: 0x0 V_MOVRELD_B32 vDst(VGPR0) src0(SGPR130) V_MOVRELD_B32 vDst(VGPR1) src0(SGPR131) V_MOVRELD_B32 vDst(VGPR2) src0(SGPR132) V_MOVRELD_B32 vDst(VGPR3) src0(SGPR133) # OpReturn: S_ANDN2_B64 sDst(SGPR116) src0(SGPR116) src1(EXEC) # lb510 Label: lb510 # CF Merge Point: Restore EXEC. S_MOV_B64 sDst(EXEC) src0(SGPR128) S_AND_B64 sDst(EXEC) src0(EXEC) src1(SGPR116) # 517: OpVectorTimesScalar: FloatVector3: tmp517 << tmp496, shortestDistanceToSurface(vf3;vf3;f1;f1; V_MUL_F32 vDst(VGPR178) src0(VGPR174) src1(VGPR171) // VOP2 V_MUL_F32 vDst(VGPR179) src0(VGPR174) src1(VGPR172) // VOP2 V_MUL_F32 vDst(VGPR180) src0(VGPR174) src1(VGPR173) // VOP2 # 518: OpFAdd: FloatVector3: tmp518 << tmp484, tmp517 V_ADD_F32 vDst(VGPR181) src0(VGPR159) src1(VGPR178) // VOP2 V_ADD_F32 vDst(VGPR182) src0(VGPR160) src1(VGPR179) // VOP2 V_ADD_F32 vDst(VGPR183) src0(VGPR161) src1(VGPR180) // VOP2 # OpStore: : const400 >> param527 S_MOV_B32 sDst(SGPR126) src0(0_5_F) S_MOV_B32 sDst(SGPR127) src0(0_5_F) S_MOV_B32 sDst(SGPR128) src0(0_5_F) V_MOV_B32 vDst(VGPR140) src0(SGPR126) V_MOV_B32 vDst(VGPR141) src0(SGPR127) V_MOV_B32 vDst(VGPR142) src0(SGPR128) # OpStore: : const400 >> param529 S_MOV_B32 sDst(SGPR126) src0(0_5_F) S_MOV_B32 sDst(SGPR127) src0(0_5_F) S_MOV_B32 sDst(SGPR128) src0(0_5_F) V_MOV_B32 vDst(VGPR143) src0(SGPR126) V_MOV_B32 vDst(VGPR144) src0(SGPR127) V_MOV_B32 vDst(VGPR145) src0(SGPR128) # OpStore: : const523 >> param531 S_MOV_B32 sDst(SGPR126) src0(1_0_F) S_MOV_B32 sDst(SGPR127) src0(1_0_F) S_MOV_B32 sDst(SGPR128) src0(1_0_F) V_MOV_B32 vDst(VGPR146) src0(SGPR126) V_MOV_B32 vDst(VGPR147) src0(SGPR127) V_MOV_B32 vDst(VGPR148) src0(SGPR128) # OpStore: : const525 >> param533 S_MOV_B32 sDst(SGPR126) src0(LITERAL_CONST) const: 0x41200000 V_MOV_B32 vDst(VGPR149) src0(SGPR126) # OpStore: : tmp518 >> param535 V_MOV_B32 vDst(VGPR150) src0(VGPR181) V_MOV_B32 vDst(VGPR151) src0(VGPR182) V_MOV_B32 vDst(VGPR152) src0(VGPR183) # OpStore: : tmp484 >> param537 V_MOV_B32 vDst(VGPR153) src0(VGPR159) V_MOV_B32 vDst(VGPR154) src0(VGPR160) V_MOV_B32 vDst(VGPR155) src0(VGPR161) # 539: OpFunctionCall: FloatVector3: phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;(param527, param529, param531, param533, param535, param537) S_ADD_U32 sDst(SGPR101) src0(LITERAL_CONST) src1(0) const: 0x8c # VGPR[535:537] S_ADD_U32 sDst(SGPR102) src0(LITERAL_CONST) src1(0) const: 0x8f # VGPR[538:540] S_ADD_U32 sDst(SGPR103) src0(LITERAL_CONST) src1(0) const: 0x92 # VGPR[541:543] S_ADD_U32 sDst(SGPR104) src0(LITERAL_CONST) src1(0) const: 0x95 # VGPR544 S_ADD_U32 sDst(SGPR105) src0(LITERAL_CONST) src1(0) const: 0x96 # VGPR[545:547] S_ADD_U32 sDst(SGPR106) src0(LITERAL_CONST) src1(0) const: 0x99 # VGPR[548:550] S_MOV_B64 sDst(SGPR124) src0(EXEC) S_MOV_B32 sDst(SGPR100) src0(LITERAL_CONST) const: 0xaf # VGPR[612:614] # Indirect branch to phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;: -1568 S_GETPC_B64 sDst(SGPR98) src0(SGPR98) S_SUB_U32 sDst(SGPR98) src0(SGPR98) src1(LITERAL_CONST) const: 0x620 S_SUBB_U32 sDst(SGPR99) src0(SGPR99) src1(LITERAL_CONST) const: 0x0 S_SWAPPC_B64 sDst(SGPR98) src0(SGPR98) S_MOV_B64 sDst(EXEC) src0(SGPR124) # .lbl19 # 541: OpCompositeExtract: Float: tmp541 << phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;, 0 V_MOV_B32 vDst(VGPR178) src0(VGPR175) # 542: OpCompositeExtract: Float: tmp542 << phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;, 1 V_MOV_B32 vDst(VGPR179) src0(VGPR176) # 543: OpCompositeExtract: Float: tmp543 << phongIllumination(vf3;vf3;vf3;f1;vf3;vf3;, 2 V_MOV_B32 vDst(VGPR180) src0(VGPR177) # 544: OpCompositeConstruct: FloatVector4: tmp544 << tmp541, tmp542, tmp543, const95 V_MOV_B32 vDst(VGPR181) src0(VGPR178) V_MOV_B32 vDst(VGPR182) src0(VGPR179) V_MOV_B32 vDst(VGPR183) src0(VGPR180) V_MOV_B32 vDst(VGPR184) src0(1_0_F) # OpStore: : tmp544 >> fragColor S_ADD_U32 sDst(M0) src0(LITERAL_CONST) src1(SGPR9) const: 0x0 V_MOVRELD_B32 vDst(VGPR0) src0(VGPR181) V_MOVRELD_B32 vDst(VGPR1) src0(VGPR182) V_MOVRELD_B32 vDst(VGPR2) src0(VGPR183) V_MOVRELD_B32 vDst(VGPR3) src0(VGPR184) # OpReturn: S_SETPC_B64 sDst(SGPR10) src0(SGPR10) Generating the final byte-code... ERROR: Code generation failed. Error log: Need 140 SGPRs, which exceeds the maximum of 102 Done.