10da6350dSMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -verify-machineinstrs < %s | FileCheck %s 28b7454a8SYaxun Liu 38b7454a8SYaxun Liu%struct.ShapeData = type { <4 x float>, <4 x float>, <4 x float>, <4 x float>, <4 x float>, i32, i32, i64, <4 x float>, i32, i8, i8, i16, i32, i32 } 48b7454a8SYaxun Liu 58b7454a8SYaxun Liudeclare float @llvm.fmuladd.f32(float, float, float) 68b7454a8SYaxun Liu 78b7454a8SYaxun Liudeclare <4 x float> @llvm.fmuladd.v4f32(<4 x float>, <4 x float>, <4 x float>) 88b7454a8SYaxun Liu 98b7454a8SYaxun Liudeclare %struct.ShapeData addrspace(1)* @Scene_getSubShapeData(i32, i8 addrspace(1)*, i32 addrspace(1)*) local_unnamed_addr 108b7454a8SYaxun Liu 118b7454a8SYaxun Liudefine <4 x float> @Scene_transformT(i32 %subshapeIdx, <4 x float> %v, float %time, i8 addrspace(1)* %gScene, i32 addrspace(1)* %gSceneOffsets) local_unnamed_addr !dbg !110 { 128b7454a8SYaxun Liuentry: 13*1022c0dfSMatt Arsenault ; CHECK: v_mov_b32_e32 v[[COPIED_ARG_PIECE:[0-9]+]], v9 14*1022c0dfSMatt Arsenault 15*1022c0dfSMatt Arsenault ; CHECK: ;DEBUG_VALUE: Scene_transformT:gScene <- [DW_OP_constu 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment 0 32] $vgpr6 16*1022c0dfSMatt Arsenault ; CHECK: ;DEBUG_VALUE: Scene_transformT:gScene <- [DW_OP_constu 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment 32 32] $vgpr7 178b7454a8SYaxun Liu call void @llvm.dbg.value(metadata i8 addrspace(1)* %gScene, metadata !120, metadata !DIExpression(DW_OP_constu, 1, DW_OP_swap, DW_OP_xderef)), !dbg !154 18*1022c0dfSMatt Arsenault ; CHECK: ;DEBUG_VALUE: Scene_transformT:gSceneOffsets <- [DW_OP_constu 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment 0 32] $vgpr8 19*1022c0dfSMatt Arsenault ; CHECK: ;DEBUG_VALUE: Scene_transformT:gSceneOffsets <- [DW_OP_constu 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment 32 32] $vgpr[[COPIED_ARG_PIECE]] 208b7454a8SYaxun Liu call void @llvm.dbg.value(metadata i32 addrspace(1)* %gSceneOffsets, metadata !121, metadata !DIExpression(DW_OP_constu, 1, DW_OP_swap, DW_OP_xderef)), !dbg !155 218b7454a8SYaxun Liu %call = tail call %struct.ShapeData addrspace(1)* @Scene_getSubShapeData(i32 %subshapeIdx, i8 addrspace(1)* %gScene, i32 addrspace(1)* %gSceneOffsets) 228b7454a8SYaxun Liu %m_linearMotion = getelementptr inbounds %struct.ShapeData, %struct.ShapeData addrspace(1)* %call, i64 0, i32 2 238b7454a8SYaxun Liu %tmp = load <4 x float>, <4 x float> addrspace(1)* %m_linearMotion, align 16 248b7454a8SYaxun Liu %m_angularMotion = getelementptr inbounds %struct.ShapeData, %struct.ShapeData addrspace(1)* %call, i64 0, i32 3 258b7454a8SYaxun Liu %tmp1 = load <4 x float>, <4 x float> addrspace(1)* %m_angularMotion, align 16 268b7454a8SYaxun Liu %m_scaleMotion = getelementptr inbounds %struct.ShapeData, %struct.ShapeData addrspace(1)* %call, i64 0, i32 4 278b7454a8SYaxun Liu %tmp2 = load <4 x float>, <4 x float> addrspace(1)* %m_scaleMotion, align 16 288b7454a8SYaxun Liu %splat.splatinsert = insertelement <4 x float> undef, float %time, i32 0 298b7454a8SYaxun Liu %splat.splat = shufflevector <4 x float> %splat.splatinsert, <4 x float> undef, <4 x i32> zeroinitializer 308b7454a8SYaxun Liu %tmp3 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %tmp2, <4 x float> %splat.splat, <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>) 318b7454a8SYaxun Liu %m_translation = getelementptr inbounds %struct.ShapeData, %struct.ShapeData addrspace(1)* %call, i64 0, i32 0 328b7454a8SYaxun Liu %tmp4 = load <4 x float>, <4 x float> addrspace(1)* %m_translation, align 16 338b7454a8SYaxun Liu %m_quaternion = getelementptr inbounds %struct.ShapeData, %struct.ShapeData addrspace(1)* %call, i64 0, i32 1 348b7454a8SYaxun Liu %tmp5 = load <4 x float>, <4 x float> addrspace(1)* %m_quaternion, align 16 358b7454a8SYaxun Liu %m_scale = getelementptr inbounds %struct.ShapeData, %struct.ShapeData addrspace(1)* %call, i64 0, i32 8 368b7454a8SYaxun Liu %tmp6 = load <4 x float>, <4 x float> addrspace(1)* %m_scale, align 16 378b7454a8SYaxun Liu %mul = fmul <4 x float> %tmp6, %v 388b7454a8SYaxun Liu %tmp7 = extractelement <4 x float> %tmp5, i64 0 398b7454a8SYaxun Liu %sub.i.i = fsub float -0.000000e+00, %tmp7 408b7454a8SYaxun Liu %vecinit.i.i = insertelement <4 x float> undef, float %sub.i.i, i32 0 418b7454a8SYaxun Liu %tmp8 = extractelement <4 x float> %tmp5, i64 1 428b7454a8SYaxun Liu %sub1.i.i = fsub float -0.000000e+00, %tmp8 438b7454a8SYaxun Liu %vecinit2.i.i = insertelement <4 x float> %vecinit.i.i, float %sub1.i.i, i32 1 448b7454a8SYaxun Liu %tmp9 = extractelement <4 x float> %tmp5, i64 2 458b7454a8SYaxun Liu %sub3.i.i = fsub float -0.000000e+00, %tmp9 468b7454a8SYaxun Liu %vecinit4.i.i = insertelement <4 x float> %vecinit2.i.i, float %sub3.i.i, i32 2 478b7454a8SYaxun Liu %vecinit5.i.i = shufflevector <4 x float> %vecinit4.i.i, <4 x float> %tmp5, <4 x i32> <i32 0, i32 1, i32 2, i32 7> 488b7454a8SYaxun Liu %tmp10 = insertelement <4 x float> %mul, float 0.000000e+00, i64 3 498b7454a8SYaxun Liu %tmp11 = extractelement <4 x float> %mul, i64 2 508b7454a8SYaxun Liu %tmp12 = extractelement <4 x float> %mul, i64 1 518b7454a8SYaxun Liu %tmp13 = fmul float %tmp9, %tmp12 528b7454a8SYaxun Liu %tmp14 = fsub float -0.000000e+00, %tmp13 538b7454a8SYaxun Liu %tmp15 = tail call float @llvm.fmuladd.f32(float %tmp8, float %tmp11, float %tmp14) 548b7454a8SYaxun Liu %tmp16 = extractelement <4 x float> %mul, i64 0 558b7454a8SYaxun Liu %tmp17 = fmul float %tmp7, %tmp11 568b7454a8SYaxun Liu %tmp18 = fsub float -0.000000e+00, %tmp17 578b7454a8SYaxun Liu %tmp19 = tail call float @llvm.fmuladd.f32(float %tmp9, float %tmp16, float %tmp18) 588b7454a8SYaxun Liu %tmp20 = fmul float %tmp8, %tmp16 598b7454a8SYaxun Liu %tmp21 = fsub float -0.000000e+00, %tmp20 608b7454a8SYaxun Liu %tmp22 = tail call float @llvm.fmuladd.f32(float %tmp7, float %tmp12, float %tmp21) 618b7454a8SYaxun Liu %tmp23 = insertelement <4 x float> <float undef, float undef, float undef, float 0.000000e+00>, float %tmp15, i32 0 628b7454a8SYaxun Liu %tmp24 = insertelement <4 x float> %tmp23, float %tmp19, i32 1 638b7454a8SYaxun Liu %tmp25 = insertelement <4 x float> %tmp24, float %tmp22, i32 2 648b7454a8SYaxun Liu %tmp26 = extractelement <4 x float> %tmp5, i64 3 658b7454a8SYaxun Liu %splat.splat.i8.i = shufflevector <4 x float> %tmp5, <4 x float> undef, <4 x i32> <i32 3, i32 3, i32 3, i32 3> 668b7454a8SYaxun Liu %splat.splat2.i9.i = shufflevector <4 x float> %tmp10, <4 x float> undef, <4 x i32> <i32 3, i32 3, i32 3, i32 3> 678b7454a8SYaxun Liu %mul3.i10.i = fmul <4 x float> %tmp5, %splat.splat2.i9.i 688b7454a8SYaxun Liu %tmp27 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %splat.splat.i8.i, <4 x float> %tmp10, <4 x float> %mul3.i10.i) 698b7454a8SYaxun Liu %add.i11.i = fadd <4 x float> %tmp27, %tmp25 708b7454a8SYaxun Liu %tmp28 = extractelement <4 x float> %tmp5, i32 2 718b7454a8SYaxun Liu %tmp29 = extractelement <4 x float> %mul, i32 2 728b7454a8SYaxun Liu %tmp30 = extractelement <4 x float> %tmp5, i32 1 738b7454a8SYaxun Liu %tmp31 = extractelement <4 x float> %mul, i32 1 748b7454a8SYaxun Liu %tmp32 = extractelement <4 x float> %tmp5, i32 0 758b7454a8SYaxun Liu %tmp33 = extractelement <4 x float> %mul, i32 0 768b7454a8SYaxun Liu %tmp34 = fmul float %tmp32, %tmp33 778b7454a8SYaxun Liu %tmp35 = tail call float @llvm.fmuladd.f32(float %tmp30, float %tmp31, float %tmp34) 788b7454a8SYaxun Liu %tmp36 = tail call float @llvm.fmuladd.f32(float %tmp28, float %tmp29, float %tmp35) 798b7454a8SYaxun Liu %tmp37 = tail call float @llvm.fmuladd.f32(float 0.000000e+00, float 0.000000e+00, float %tmp36) 808b7454a8SYaxun Liu %neg.i12.i = fsub float -0.000000e+00, %tmp37 818b7454a8SYaxun Liu %tmp38 = tail call float @llvm.fmuladd.f32(float %tmp26, float 0.000000e+00, float %neg.i12.i) 828b7454a8SYaxun Liu %tmp39 = insertelement <4 x float> %add.i11.i, float %tmp38, i64 3 838b7454a8SYaxun Liu %tmp40 = extractelement <4 x float> %add.i11.i, i64 1 848b7454a8SYaxun Liu %tmp41 = extractelement <4 x float> %add.i11.i, i64 2 858b7454a8SYaxun Liu %tmp42 = fmul float %tmp41, %sub1.i.i 868b7454a8SYaxun Liu %tmp43 = fsub float -0.000000e+00, %tmp42 878b7454a8SYaxun Liu %tmp44 = tail call float @llvm.fmuladd.f32(float %tmp40, float %sub3.i.i, float %tmp43) 888b7454a8SYaxun Liu %tmp45 = extractelement <4 x float> %add.i11.i, i64 0 898b7454a8SYaxun Liu %tmp46 = fmul float %tmp45, %sub3.i.i 908b7454a8SYaxun Liu %tmp47 = fsub float -0.000000e+00, %tmp46 918b7454a8SYaxun Liu %tmp48 = tail call float @llvm.fmuladd.f32(float %tmp41, float %sub.i.i, float %tmp47) 928b7454a8SYaxun Liu %tmp49 = fmul float %tmp40, %sub.i.i 938b7454a8SYaxun Liu %tmp50 = fsub float -0.000000e+00, %tmp49 948b7454a8SYaxun Liu %tmp51 = tail call float @llvm.fmuladd.f32(float %tmp45, float %sub1.i.i, float %tmp50) 958b7454a8SYaxun Liu %tmp52 = insertelement <4 x float> <float undef, float undef, float undef, float 0.000000e+00>, float %tmp44, i32 0 968b7454a8SYaxun Liu %tmp53 = insertelement <4 x float> %tmp52, float %tmp48, i32 1 978b7454a8SYaxun Liu %tmp54 = insertelement <4 x float> %tmp53, float %tmp51, i32 2 988b7454a8SYaxun Liu %splat.splat.i.i = shufflevector <4 x float> %tmp39, <4 x float> undef, <4 x i32> <i32 3, i32 3, i32 3, i32 3> 998b7454a8SYaxun Liu %tmp55 = extractelement <4 x float> %tmp5, i32 3 1008b7454a8SYaxun Liu %mul3.i.i = fmul <4 x float> %splat.splat.i8.i, %tmp39 1018b7454a8SYaxun Liu %tmp56 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %splat.splat.i.i, <4 x float> %vecinit5.i.i, <4 x float> %mul3.i.i) 1028b7454a8SYaxun Liu %add.i.i = fadd <4 x float> %tmp56, %tmp54 1038b7454a8SYaxun Liu %tmp57 = extractelement <4 x float> %add.i11.i, i32 2 1048b7454a8SYaxun Liu %tmp58 = extractelement <4 x float> %add.i11.i, i32 1 1058b7454a8SYaxun Liu %tmp59 = extractelement <4 x float> %add.i11.i, i32 0 1068b7454a8SYaxun Liu %tmp60 = fmul float %tmp59, %sub.i.i 1078b7454a8SYaxun Liu %tmp61 = tail call float @llvm.fmuladd.f32(float %tmp58, float %sub1.i.i, float %tmp60) 1088b7454a8SYaxun Liu %tmp62 = tail call float @llvm.fmuladd.f32(float %tmp57, float %sub3.i.i, float %tmp61) 1098b7454a8SYaxun Liu %tmp63 = tail call float @llvm.fmuladd.f32(float 0.000000e+00, float 0.000000e+00, float %tmp62) 1108b7454a8SYaxun Liu %neg.i.i = fsub float -0.000000e+00, %tmp63 1118b7454a8SYaxun Liu %tmp64 = tail call float @llvm.fmuladd.f32(float %tmp38, float %tmp55, float %neg.i.i) 1128b7454a8SYaxun Liu %tmp65 = insertelement <4 x float> %add.i.i, float %tmp64, i64 3 1138b7454a8SYaxun Liu %mul2 = fmul <4 x float> %tmp3, %tmp65 1148b7454a8SYaxun Liu %tmp66 = extractelement <4 x float> %tmp1, i64 3 1158b7454a8SYaxun Liu %mul3 = fmul float %tmp66, %time 1168b7454a8SYaxun Liu %tmp67 = insertelement <4 x float> %tmp1, float 0.000000e+00, i32 3 1178b7454a8SYaxun Liu %tmp68 = shufflevector <4 x float> %tmp67, <4 x float> %tmp1, <4 x i32> <i32 0, i32 5, i32 undef, i32 3> 1188b7454a8SYaxun Liu %vecinit3.i.i = shufflevector <4 x float> %tmp68, <4 x float> %tmp1, <4 x i32> <i32 0, i32 1, i32 6, i32 3> 1198b7454a8SYaxun Liu %tmp69 = fcmp oeq <4 x float> %vecinit3.i.i, zeroinitializer 1208b7454a8SYaxun Liu %tmp70 = sext <4 x i1> %tmp69 to <4 x i32> 1218b7454a8SYaxun Liu %tmp71 = shufflevector <4 x i32> %tmp70, <4 x i32> undef, <2 x i32> <i32 2, i32 3> 1228b7454a8SYaxun Liu %tmp72 = shufflevector <4 x i32> %tmp70, <4 x i32> undef, <2 x i32> <i32 0, i32 1> 1238b7454a8SYaxun Liu %tmp73 = and <2 x i32> %tmp71, %tmp72 1248b7454a8SYaxun Liu %tmp74 = extractelement <2 x i32> %tmp73, i64 0 1258b7454a8SYaxun Liu %tmp75 = extractelement <2 x i32> %tmp73, i64 1 1268b7454a8SYaxun Liu %tmp76 = and i32 %tmp74, %tmp75 1278b7454a8SYaxun Liu %tmp77 = icmp sgt i32 %tmp76, -1 1288b7454a8SYaxun Liu br i1 %tmp77, label %bb, label %qtSet.exit 1298b7454a8SYaxun Liu 1308b7454a8SYaxun Liubb: ; preds = %entry 1318b7454a8SYaxun Liu %tmp78 = extractelement <4 x float> %tmp1, i32 2 1328b7454a8SYaxun Liu %tmp79 = extractelement <4 x float> %tmp1, i32 1 1338b7454a8SYaxun Liu %tmp80 = extractelement <4 x float> %tmp1, i32 0 1348b7454a8SYaxun Liu %tmp81 = fmul float %tmp80, %tmp80 1358b7454a8SYaxun Liu %tmp82 = tail call float @llvm.fmuladd.f32(float %tmp79, float %tmp79, float %tmp81) 1368b7454a8SYaxun Liu %tmp83 = tail call float @llvm.fmuladd.f32(float %tmp78, float %tmp78, float %tmp82) 1378b7454a8SYaxun Liu %tmp84 = tail call float @llvm.fmuladd.f32(float 0.000000e+00, float 0.000000e+00, float %tmp83) 1388b7454a8SYaxun Liu %tmp85 = fcmp olt float %tmp84, 0x3810000000000000 1398b7454a8SYaxun Liu br i1 %tmp85, label %bb86, label %bb96 1408b7454a8SYaxun Liu 1418b7454a8SYaxun Liubb86: ; preds = %bb 1428b7454a8SYaxun Liu %tmp87 = fmul <4 x float> %vecinit3.i.i, <float 0x4550000000000000, float 0x4550000000000000, float 0x4550000000000000, float 0x4550000000000000> 1438b7454a8SYaxun Liu %tmp88 = extractelement <4 x float> %tmp87, i64 3 1448b7454a8SYaxun Liu %tmp89 = extractelement <4 x float> %tmp87, i64 2 1458b7454a8SYaxun Liu %tmp90 = extractelement <4 x float> %tmp87, i64 1 1468b7454a8SYaxun Liu %tmp91 = extractelement <4 x float> %tmp87, i64 0 1478b7454a8SYaxun Liu %tmp92 = fmul float %tmp91, %tmp91 1488b7454a8SYaxun Liu %tmp93 = tail call float @llvm.fmuladd.f32(float %tmp90, float %tmp90, float %tmp92) 1498b7454a8SYaxun Liu %tmp94 = tail call float @llvm.fmuladd.f32(float %tmp89, float %tmp89, float %tmp93) 1508b7454a8SYaxun Liu %tmp95 = tail call float @llvm.fmuladd.f32(float %tmp88, float %tmp88, float %tmp94) 1518b7454a8SYaxun Liu br label %bb141 1528b7454a8SYaxun Liu 1538b7454a8SYaxun Liubb96: ; preds = %bb 1548b7454a8SYaxun Liu %tmp97 = fcmp oeq float %tmp84, 0x7FF0000000000000 1558b7454a8SYaxun Liu br i1 %tmp97, label %bb98, label %bb141 1568b7454a8SYaxun Liu 1578b7454a8SYaxun Liubb98: ; preds = %bb96 1588b7454a8SYaxun Liu %tmp99 = fmul <4 x float> %vecinit3.i.i, <float 0x3BD0000000000000, float 0x3BD0000000000000, float 0x3BD0000000000000, float 0x3BD0000000000000> 1598b7454a8SYaxun Liu %tmp100 = extractelement <4 x float> %tmp99, i64 3 1608b7454a8SYaxun Liu %tmp101 = extractelement <4 x float> %tmp99, i64 2 1618b7454a8SYaxun Liu %tmp102 = extractelement <4 x float> %tmp99, i64 1 1628b7454a8SYaxun Liu %tmp103 = extractelement <4 x float> %tmp99, i64 0 1638b7454a8SYaxun Liu %tmp104 = fmul float %tmp103, %tmp103 1648b7454a8SYaxun Liu %tmp105 = tail call float @llvm.fmuladd.f32(float %tmp102, float %tmp102, float %tmp104) 1658b7454a8SYaxun Liu %tmp106 = tail call float @llvm.fmuladd.f32(float %tmp101, float %tmp101, float %tmp105) 1668b7454a8SYaxun Liu %tmp107 = tail call float @llvm.fmuladd.f32(float %tmp100, float %tmp100, float %tmp106) 1678b7454a8SYaxun Liu %tmp108 = fcmp oeq float %tmp107, 0x7FF0000000000000 1688b7454a8SYaxun Liu br i1 %tmp108, label %bb109, label %bb141 1698b7454a8SYaxun Liu 1708b7454a8SYaxun Liubb109: ; preds = %bb98 1718b7454a8SYaxun Liu %tmp110 = tail call zeroext i1 @llvm.amdgcn.class.f32(float %tmp103, i32 516) 1728b7454a8SYaxun Liu %tmp111 = sext i1 %tmp110 to i32 1738b7454a8SYaxun Liu %tmp112 = insertelement <4 x i32> undef, i32 %tmp111, i32 0 1748b7454a8SYaxun Liu %tmp113 = tail call zeroext i1 @llvm.amdgcn.class.f32(float %tmp102, i32 516) 1758b7454a8SYaxun Liu %tmp114 = sext i1 %tmp113 to i32 1768b7454a8SYaxun Liu %tmp115 = insertelement <4 x i32> %tmp112, i32 %tmp114, i32 1 1778b7454a8SYaxun Liu %tmp116 = tail call zeroext i1 @llvm.amdgcn.class.f32(float %tmp101, i32 516) 1788b7454a8SYaxun Liu %tmp117 = sext i1 %tmp116 to i32 1798b7454a8SYaxun Liu %tmp118 = insertelement <4 x i32> %tmp115, i32 %tmp117, i32 2 1808b7454a8SYaxun Liu %tmp119 = tail call zeroext i1 @llvm.amdgcn.class.f32(float %tmp100, i32 516) 1818b7454a8SYaxun Liu %tmp120 = sext i1 %tmp119 to i32 1828b7454a8SYaxun Liu %tmp121 = insertelement <4 x i32> %tmp118, i32 %tmp120, i32 3 1838b7454a8SYaxun Liu %tmp122 = ashr <4 x i32> %tmp121, <i32 31, i32 31, i32 31, i32 31> 1848b7454a8SYaxun Liu %tmp123 = and <4 x i32> %tmp122, <i32 1065353216, i32 1065353216, i32 1065353216, i32 1065353216> 1858b7454a8SYaxun Liu %tmp124 = bitcast <4 x i32> %tmp123 to <4 x float> 1868b7454a8SYaxun Liu %tmp125 = extractelement <4 x float> %tmp124, i64 0 1878b7454a8SYaxun Liu %tmp126 = tail call float @llvm.copysign.f32(float %tmp125, float %tmp103) 1888b7454a8SYaxun Liu %tmp127 = insertelement <4 x float> undef, float %tmp126, i32 0 1898b7454a8SYaxun Liu %tmp128 = extractelement <4 x float> %tmp124, i64 1 1908b7454a8SYaxun Liu %tmp129 = tail call float @llvm.copysign.f32(float %tmp128, float %tmp102) 1918b7454a8SYaxun Liu %tmp130 = insertelement <4 x float> %tmp127, float %tmp129, i32 1 1928b7454a8SYaxun Liu %tmp131 = extractelement <4 x float> %tmp124, i64 2 1938b7454a8SYaxun Liu %tmp132 = tail call float @llvm.copysign.f32(float %tmp131, float %tmp101) 1948b7454a8SYaxun Liu %tmp133 = insertelement <4 x float> %tmp130, float %tmp132, i32 2 1958b7454a8SYaxun Liu %tmp134 = extractelement <4 x float> %tmp124, i64 3 1968b7454a8SYaxun Liu %tmp135 = tail call float @llvm.copysign.f32(float %tmp134, float %tmp100) 1978b7454a8SYaxun Liu %tmp136 = insertelement <4 x float> %tmp133, float %tmp135, i32 3 1988b7454a8SYaxun Liu %tmp137 = fmul float %tmp126, %tmp126 1998b7454a8SYaxun Liu %tmp138 = tail call float @llvm.fmuladd.f32(float %tmp129, float %tmp129, float %tmp137) 2008b7454a8SYaxun Liu %tmp139 = tail call float @llvm.fmuladd.f32(float %tmp132, float %tmp132, float %tmp138) 2018b7454a8SYaxun Liu %tmp140 = tail call float @llvm.fmuladd.f32(float %tmp135, float %tmp135, float %tmp139) 2028b7454a8SYaxun Liu br label %bb141 2038b7454a8SYaxun Liu 2048b7454a8SYaxun Liubb141: ; preds = %bb109, %bb98, %bb96, %bb86 2058b7454a8SYaxun Liu %tmp142 = phi <4 x float> [ %tmp87, %bb86 ], [ %tmp136, %bb109 ], [ %tmp99, %bb98 ], [ %vecinit3.i.i, %bb96 ] 2068b7454a8SYaxun Liu %tmp143 = phi float [ %tmp95, %bb86 ], [ %tmp140, %bb109 ], [ %tmp107, %bb98 ], [ %tmp84, %bb96 ] 2078b7454a8SYaxun Liu %tmp144 = tail call float @llvm.amdgcn.rsq.f32(float %tmp143) 2088b7454a8SYaxun Liu %tmp145 = insertelement <4 x float> undef, float %tmp144, i32 0 2098b7454a8SYaxun Liu %tmp146 = shufflevector <4 x float> %tmp145, <4 x float> undef, <4 x i32> zeroinitializer 2108b7454a8SYaxun Liu %tmp147 = fmul <4 x float> %tmp142, %tmp146 2118b7454a8SYaxun Liu br label %qtSet.exit 2128b7454a8SYaxun Liu 2138b7454a8SYaxun LiuqtSet.exit: ; preds = %bb141, %entry 2148b7454a8SYaxun Liu %tmp148 = phi <4 x float> [ %tmp147, %bb141 ], [ %vecinit3.i.i, %entry ] 2158b7454a8SYaxun Liu %div.i = fmul float %mul3, 5.000000e-01 2168b7454a8SYaxun Liu %cmp.i.i = fcmp olt float %div.i, 0x400921CAC0000000 2178b7454a8SYaxun Liu %cond.i.i = select i1 %cmp.i.i, float 0x401921CAC0000000, float 0.000000e+00 2188b7454a8SYaxun Liu %add.i18.i = fadd float %div.i, %cond.i.i 2198b7454a8SYaxun Liu %cmp1.i.i = fcmp ogt float %add.i18.i, 0x400921CAC0000000 2208b7454a8SYaxun Liu %cond2.i.i = select i1 %cmp1.i.i, float 0x401921CAC0000000, float 0.000000e+00 2218b7454a8SYaxun Liu %sub.i.i48 = fsub float %add.i18.i, %cond2.i.i 2228b7454a8SYaxun Liu %mul.i.i = fmul float %sub.i.i48, 0x3FF45F3060000000 2238b7454a8SYaxun Liu %cmp3.i.i = fcmp olt float %sub.i.i48, 0.000000e+00 2248b7454a8SYaxun Liu %mul5.i.i = select i1 %cmp3.i.i, float 0x3FD9F02F60000000, float 0xBFD9F02F60000000 2258b7454a8SYaxun Liu %mul6.i.i = fmul float %sub.i.i48, %mul5.i.i 2268b7454a8SYaxun Liu %tmp149 = tail call float @llvm.fmuladd.f32(float %mul6.i.i, float %sub.i.i48, float %mul.i.i) 2278b7454a8SYaxun Liu %cmp8.i.i = fcmp olt float %tmp149, 0.000000e+00 2288b7454a8SYaxun Liu %cond9.i.i = select i1 %cmp8.i.i, float -1.000000e+00, float 1.000000e+00 2298b7454a8SYaxun Liu %mul10.i.i = fmul float %tmp149, %cond9.i.i 2308b7454a8SYaxun Liu %neg.i.i49 = fsub float -0.000000e+00, %tmp149 2318b7454a8SYaxun Liu %tmp150 = tail call float @llvm.fmuladd.f32(float %mul10.i.i, float %tmp149, float %neg.i.i49) 2328b7454a8SYaxun Liu %tmp151 = tail call float @llvm.fmuladd.f32(float %tmp150, float 0x3FCCCCCCC0000000, float %tmp149) 2338b7454a8SYaxun Liu %tmp152 = extractelement <4 x float> %tmp148, i64 0 2348b7454a8SYaxun Liu %mul.i = fmul float %tmp151, %tmp152 2358b7454a8SYaxun Liu %tmp153 = insertelement <4 x float> undef, float %mul.i, i64 0 2368b7454a8SYaxun Liu %tmp154 = extractelement <4 x float> %tmp148, i64 1 2378b7454a8SYaxun Liu %mul2.i = fmul float %tmp151, %tmp154 2388b7454a8SYaxun Liu %tmp155 = insertelement <4 x float> %tmp153, float %mul2.i, i64 1 2398b7454a8SYaxun Liu %tmp156 = extractelement <4 x float> %tmp148, i64 2 2408b7454a8SYaxun Liu %mul3.i = fmul float %tmp151, %tmp156 2418b7454a8SYaxun Liu %tmp157 = insertelement <4 x float> %tmp155, float %mul3.i, i64 2 2428b7454a8SYaxun Liu %add.i.i50 = fadd float %div.i, 0x3FF921CAC0000000 2438b7454a8SYaxun Liu %cmp.i.i.i = fcmp olt float %add.i.i50, 0x400921CAC0000000 2448b7454a8SYaxun Liu %cond.i.i.i = select i1 %cmp.i.i.i, float 0x401921CAC0000000, float 0.000000e+00 2458b7454a8SYaxun Liu %add.i.i.i = fadd float %add.i.i50, %cond.i.i.i 2468b7454a8SYaxun Liu %cmp1.i.i.i = fcmp ogt float %add.i.i.i, 0x400921CAC0000000 2478b7454a8SYaxun Liu %cond2.i.i.i = select i1 %cmp1.i.i.i, float 0x401921CAC0000000, float 0.000000e+00 2488b7454a8SYaxun Liu %sub.i.i.i = fsub float %add.i.i.i, %cond2.i.i.i 2498b7454a8SYaxun Liu %mul.i.i.i = fmul float %sub.i.i.i, 0x3FF45F3060000000 2508b7454a8SYaxun Liu %cmp3.i.i.i = fcmp olt float %sub.i.i.i, 0.000000e+00 2518b7454a8SYaxun Liu %mul5.i.i.i = select i1 %cmp3.i.i.i, float 0x3FD9F02F60000000, float 0xBFD9F02F60000000 2528b7454a8SYaxun Liu %mul6.i.i.i = fmul float %sub.i.i.i, %mul5.i.i.i 2538b7454a8SYaxun Liu %tmp158 = tail call float @llvm.fmuladd.f32(float %mul6.i.i.i, float %sub.i.i.i, float %mul.i.i.i) 2548b7454a8SYaxun Liu %cmp8.i.i.i = fcmp olt float %tmp158, 0.000000e+00 2558b7454a8SYaxun Liu %cond9.i.i.i = select i1 %cmp8.i.i.i, float -1.000000e+00, float 1.000000e+00 2568b7454a8SYaxun Liu %mul10.i.i.i = fmul float %tmp158, %cond9.i.i.i 2578b7454a8SYaxun Liu %neg.i.i.i = fsub float -0.000000e+00, %tmp158 2588b7454a8SYaxun Liu %tmp159 = tail call float @llvm.fmuladd.f32(float %mul10.i.i.i, float %tmp158, float %neg.i.i.i) 2598b7454a8SYaxun Liu %tmp160 = tail call float @llvm.fmuladd.f32(float %tmp159, float 0x3FCCCCCCC0000000, float %tmp158) 2608b7454a8SYaxun Liu %tmp161 = insertelement <4 x float> %tmp157, float %tmp160, i64 3 2618b7454a8SYaxun Liu %sub.i.i32 = fsub float -0.000000e+00, %mul.i 2628b7454a8SYaxun Liu %vecinit.i.i33 = insertelement <4 x float> undef, float %sub.i.i32, i32 0 2638b7454a8SYaxun Liu %sub1.i.i34 = fsub float -0.000000e+00, %mul2.i 2648b7454a8SYaxun Liu %vecinit2.i.i35 = insertelement <4 x float> %vecinit.i.i33, float %sub1.i.i34, i32 1 2658b7454a8SYaxun Liu %sub3.i.i36 = fsub float -0.000000e+00, %mul3.i 2668b7454a8SYaxun Liu %vecinit4.i.i37 = insertelement <4 x float> %vecinit2.i.i35, float %sub3.i.i36, i32 2 2678b7454a8SYaxun Liu %vecinit5.i.i38 = shufflevector <4 x float> %vecinit4.i.i37, <4 x float> %tmp161, <4 x i32> <i32 0, i32 1, i32 2, i32 7> 2688b7454a8SYaxun Liu %tmp162 = insertelement <4 x float> %mul2, float 0.000000e+00, i64 3 2698b7454a8SYaxun Liu ret <4 x float> %tmp162 2708b7454a8SYaxun Liu} 2718b7454a8SYaxun Liu 2728b7454a8SYaxun Liudeclare float @llvm.copysign.f32(float, float) 2738b7454a8SYaxun Liu 2748b7454a8SYaxun Liudeclare i1 @llvm.amdgcn.class.f32(float, i32) 2758b7454a8SYaxun Liu 2768b7454a8SYaxun Liudeclare float @llvm.amdgcn.rsq.f32(float) 2778b7454a8SYaxun Liu 2788b7454a8SYaxun Liudeclare void @llvm.dbg.value(metadata, metadata, metadata) 2798b7454a8SYaxun Liu 2808b7454a8SYaxun Liu!llvm.dbg.cu = !{!0} 2818b7454a8SYaxun Liu!llvm.module.flags = !{!104, !105, !106} 2828b7454a8SYaxun Liu!opencl.ocl.version = !{!107} 2838b7454a8SYaxun Liu!llvm.ident = !{!108, !109} 2848b7454a8SYaxun Liu 285693d39ddSJames Y Knight!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 7.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !74) 2868b7454a8SYaxun Liu!1 = !DIFile(filename: "tmp.cl", directory: "/home/yaxunl/h/git/llvm/assert") 2878b7454a8SYaxun Liu!2 = !{!3, !27, !37, !42, !46, !51, !55, !68} 2888b7454a8SYaxun Liu!3 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "BrdfType", file: !4, line: 1334, size: 32, elements: !5) 2898b7454a8SYaxun Liu!4 = !DIFile(filename: "GraphMaterialSystemKernels1.cl", directory: "/home/yaxunl/h/git/llvm/assert") 2908b7454a8SYaxun Liu!5 = !{!6, !7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26} 2918b7454a8SYaxun Liu!6 = !DIEnumerator(name: "BRDF_DEFAULT", value: 0) 2928b7454a8SYaxun Liu!7 = !DIEnumerator(name: "BRDF_LAMBERT", value: 1) 2938b7454a8SYaxun Liu!8 = !DIEnumerator(name: "BRDF_MICROFACET", value: 2) 2948b7454a8SYaxun Liu!9 = !DIEnumerator(name: "BRDF_REFLECT", value: 3) 2958b7454a8SYaxun Liu!10 = !DIEnumerator(name: "BRDF_REFRACT", value: 4) 2968b7454a8SYaxun Liu!11 = !DIEnumerator(name: "BRDF_EMISSIVE", value: 5) 2978b7454a8SYaxun Liu!12 = !DIEnumerator(name: "BRDF_LAYERED", value: 6) 2988b7454a8SYaxun Liu!13 = !DIEnumerator(name: "BRDF_FUR", value: 7) 2998b7454a8SYaxun Liu!14 = !DIEnumerator(name: "BRDF_DIFFUSE_ORENNAYAR", value: 8) 3008b7454a8SYaxun Liu!15 = !DIEnumerator(name: "BRDF_TRANSPARENT", value: 9) 3018b7454a8SYaxun Liu!16 = !DIEnumerator(name: "BRDF_PHONG", value: 10) 3028b7454a8SYaxun Liu!17 = !DIEnumerator(name: "BRDF_WARD", value: 11) 3038b7454a8SYaxun Liu!18 = !DIEnumerator(name: "BRDF_ASHIKHMIN", value: 12) 3048b7454a8SYaxun Liu!19 = !DIEnumerator(name: "BRDF_MICROFACET_GGX", value: 13) 3058b7454a8SYaxun Liu!20 = !DIEnumerator(name: "BRDF_MICROFACET_REFRACTION", value: 14) 3068b7454a8SYaxun Liu!21 = !DIEnumerator(name: "BRDF_PASSTHROUGH", value: 15) 3078b7454a8SYaxun Liu!22 = !DIEnumerator(name: "BRDF_VOLUME", value: 16) 3088b7454a8SYaxun Liu!23 = !DIEnumerator(name: "BRDF_LAMBERT_REFRACTION", value: 17) 3098b7454a8SYaxun Liu!24 = !DIEnumerator(name: "BRDF_MICROFACET_ANISOTROPIC_REFLECTION", value: 18) 3108b7454a8SYaxun Liu!25 = !DIEnumerator(name: "BRDF_MICROFACET_ANISOTROPIC_REFRACTION", value: 19) 3118b7454a8SYaxun Liu!26 = !DIEnumerator(name: "BRDF_MICROFACET_BECKMANN", value: 20) 3128b7454a8SYaxun Liu!27 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "LightType", file: !4, line: 1470, size: 32, elements: !28) 3138b7454a8SYaxun Liu!28 = !{!29, !30, !31, !32, !33, !34, !35, !36} 3148b7454a8SYaxun Liu!29 = !DIEnumerator(name: "LIGHT_POINT", value: 0) 3158b7454a8SYaxun Liu!30 = !DIEnumerator(name: "LIGHT_SPOT", value: 1) 3168b7454a8SYaxun Liu!31 = !DIEnumerator(name: "LIGHT_DIRECTIONAL", value: 2) 3178b7454a8SYaxun Liu!32 = !DIEnumerator(name: "LIGHT_UNIFORM", value: 3) 3188b7454a8SYaxun Liu!33 = !DIEnumerator(name: "LIGHT_MESH", value: 4) 3198b7454a8SYaxun Liu!34 = !DIEnumerator(name: "LIGHT_IBL", value: 5) 3208b7454a8SYaxun Liu!35 = !DIEnumerator(name: "LIGHT_GONIOPHOTO", value: 6) 3218b7454a8SYaxun Liu!36 = !DIEnumerator(name: "LIGHT_SKY", value: 7) 3228b7454a8SYaxun Liu!37 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !4, line: 1569, size: 32, elements: !38) 3238b7454a8SYaxun Liu!38 = !{!39, !40, !41} 3248b7454a8SYaxun Liu!39 = !DIEnumerator(name: "UG3D_FILTER_NEAREST", value: 0) 3258b7454a8SYaxun Liu!40 = !DIEnumerator(name: "UG3D_FILTER_LINEAR", value: 1) 3268b7454a8SYaxun Liu!41 = !DIEnumerator(name: "UG3D_FILTER_MONOTONIC_CUBIC", value: 2) 3278b7454a8SYaxun Liu!42 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !4, line: 1562, size: 32, elements: !43) 3288b7454a8SYaxun Liu!43 = !{!44, !45} 3298b7454a8SYaxun Liu!44 = !DIEnumerator(name: "VH_CHECKER", value: 0) 3308b7454a8SYaxun Liu!45 = !DIEnumerator(name: "VH_OPENVDB", value: 1) 3318b7454a8SYaxun Liu!46 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !4, line: 1554, size: 32, elements: !47) 3328b7454a8SYaxun Liu!47 = !{!48, !49, !50} 3338b7454a8SYaxun Liu!48 = !DIEnumerator(name: "VOLUME_HOMOGENEOUS", value: 0) 3348b7454a8SYaxun Liu!49 = !DIEnumerator(name: "VOLUME_HETEROGENEOUS", value: 1) 3358b7454a8SYaxun Liu!50 = !DIEnumerator(name: "VOLUME_NONE", value: 65535) 3368b7454a8SYaxun Liu!51 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "VolumeFlags", file: !4, line: 1504, size: 32, elements: !52) 3378b7454a8SYaxun Liu!52 = !{!53, !54} 3388b7454a8SYaxun Liu!53 = !DIEnumerator(name: "VFLAGS_NONE", value: 0) 3398b7454a8SYaxun Liu!54 = !DIEnumerator(name: "VFLAGS_SINGLE_SCATTER", value: 1) 3408b7454a8SYaxun Liu!55 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "OffsetIdx", file: !4, line: 1316, size: 32, elements: !56) 3418b7454a8SYaxun Liu!56 = !{!57, !58, !59, !60, !61, !62, !63, !64, !65, !66, !67} 3428b7454a8SYaxun Liu!57 = !DIEnumerator(name: "SCENE_OFFSET_IDX_FACE", value: 0) 3438b7454a8SYaxun Liu!58 = !DIEnumerator(name: "SCENE_OFFSET_IDX_VTX", value: 1) 3448b7454a8SYaxun Liu!59 = !DIEnumerator(name: "SCENE_OFFSET_IDX_N", value: 2) 3458b7454a8SYaxun Liu!60 = !DIEnumerator(name: "SCENE_OFFSET_IDX_TEXCRD", value: 3) 3468b7454a8SYaxun Liu!61 = !DIEnumerator(name: "SCENE_OFFSET_IDX_TEXCRD1", value: 4) 3478b7454a8SYaxun Liu!62 = !DIEnumerator(name: "SCENE_OFFSET_IDX_SUBSHAPE_DATA", value: 5) 3488b7454a8SYaxun Liu!63 = !DIEnumerator(name: "SCENE_OFFSET_IDX_MATERIAL", value: 6) 3498b7454a8SYaxun Liu!64 = !DIEnumerator(name: "SCENE_OFFSET_IDX_MATERIAL_DESC", value: 7) 3508b7454a8SYaxun Liu!65 = !DIEnumerator(name: "SCENE_OFFSET_IDX_GRID3D", value: 8) 3518b7454a8SYaxun Liu!66 = !DIEnumerator(name: "SCENE_OFFSET_IDX_WORLD_VOLUME", value: 9) 3528b7454a8SYaxun Liu!67 = !DIEnumerator(name: "SCENE_OFFSET_INTERVAL", value: 4) 3538b7454a8SYaxun Liu!68 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !4, line: 1972, size: 32, elements: !69) 3548b7454a8SYaxun Liu!69 = !{!70, !71, !72, !73} 3558b7454a8SYaxun Liu!70 = !DIEnumerator(name: "FACE_TRIANGLE", value: 0) 3568b7454a8SYaxun Liu!71 = !DIEnumerator(name: "FACE_LINE_SEGMENT", value: 1) 3578b7454a8SYaxun Liu!72 = !DIEnumerator(name: "FACE_QUAD", value: 2) 3588b7454a8SYaxun Liu!73 = !DIEnumerator(name: "FACE_OTHERS", value: 3) 3598b7454a8SYaxun Liu!74 = !{!75, !77, !80, !83, !84, !87, !88, !102} 3608b7454a8SYaxun Liu!75 = !DIDerivedType(tag: DW_TAG_typedef, name: "u32", file: !4, line: 85, baseType: !76) 3618b7454a8SYaxun Liu!76 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) 3628b7454a8SYaxun Liu!77 = !DIDerivedType(tag: DW_TAG_typedef, name: "float4", file: !78, line: 127, baseType: !79) 3638b7454a8SYaxun Liu!78 = !DIFile(filename: "/home/yaxunl/h/driver/1490442/opencl/include/opencl-c.h", directory: "/home/yaxunl/h/git/llvm/assert") 3648b7454a8SYaxun Liu!79 = !DICompositeType(tag: DW_TAG_array_type, baseType: !80, size: 128, flags: DIFlagVector, elements: !81) 3658b7454a8SYaxun Liu!80 = !DIBasicType(name: "float", size: 32, encoding: DW_ATE_float) 3668b7454a8SYaxun Liu!81 = !{!82} 3678b7454a8SYaxun Liu!82 = !DISubrange(count: 4) 3688b7454a8SYaxun Liu!83 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) 3698b7454a8SYaxun Liu!84 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !85, size: 32, dwarfAddressSpace: 1) 3708b7454a8SYaxun Liu!85 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !86) 3718b7454a8SYaxun Liu!86 = !DIBasicType(name: "half", size: 16, encoding: DW_ATE_float) 3728b7454a8SYaxun Liu!87 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !86, size: 32, dwarfAddressSpace: 1) 3738b7454a8SYaxun Liu!88 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !89, size: 64) 3748b7454a8SYaxun Liu!89 = !DIDerivedType(tag: DW_TAG_typedef, name: "Face", file: !4, line: 1993, baseType: !90) 3758b7454a8SYaxun Liu!90 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !4, line: 1981, size: 640, elements: !91) 3768b7454a8SYaxun Liu!91 = !{!92, !94, !95, !96, !97, !98, !100, !101} 3778b7454a8SYaxun Liu!92 = !DIDerivedType(tag: DW_TAG_member, name: "m_v", scope: !90, file: !4, line: 1983, baseType: !93, size: 128) 3788b7454a8SYaxun Liu!93 = !DICompositeType(tag: DW_TAG_array_type, baseType: !83, size: 128, elements: !81) 3798b7454a8SYaxun Liu!94 = !DIDerivedType(tag: DW_TAG_member, name: "m_n", scope: !90, file: !4, line: 1984, baseType: !93, size: 128, offset: 128) 3808b7454a8SYaxun Liu!95 = !DIDerivedType(tag: DW_TAG_member, name: "m_t", scope: !90, file: !4, line: 1985, baseType: !93, size: 128, offset: 256) 3818b7454a8SYaxun Liu!96 = !DIDerivedType(tag: DW_TAG_member, name: "m_t1", scope: !90, file: !4, line: 1986, baseType: !93, size: 128, offset: 384) 3828b7454a8SYaxun Liu!97 = !DIDerivedType(tag: DW_TAG_member, name: "m_m", scope: !90, file: !4, line: 1988, baseType: !83, size: 32, offset: 512) 3838b7454a8SYaxun Liu!98 = !DIDerivedType(tag: DW_TAG_member, name: "m_type", scope: !90, file: !4, line: 1989, baseType: !99, size: 32, offset: 544) 3848b7454a8SYaxun Liu!99 = !DIDerivedType(tag: DW_TAG_typedef, name: "FaceType", file: !4, line: 1978, baseType: !68) 3858b7454a8SYaxun Liu!100 = !DIDerivedType(tag: DW_TAG_member, name: "m_lightIdx", scope: !90, file: !4, line: 1990, baseType: !83, size: 32, offset: 576) 3868b7454a8SYaxun Liu!101 = !DIDerivedType(tag: DW_TAG_member, name: "m_padding", scope: !90, file: !4, line: 1991, baseType: !83, size: 32, offset: 608) 3878b7454a8SYaxun Liu!102 = !DIDerivedType(tag: DW_TAG_typedef, name: "u64", file: !4, line: 84, baseType: !103) 3888b7454a8SYaxun Liu!103 = !DIBasicType(name: "long unsigned int", size: 64, encoding: DW_ATE_unsigned) 3898b7454a8SYaxun Liu!104 = !{i32 2, !"Dwarf Version", i32 2} 3908b7454a8SYaxun Liu!105 = !{i32 2, !"Debug Info Version", i32 3} 3918b7454a8SYaxun Liu!106 = !{i32 1, !"wchar_size", i32 4} 3928b7454a8SYaxun Liu!107 = !{i32 2, i32 0} 393693d39ddSJames Y Knight!108 = !{!"clang version 7.0.0"} 3948b7454a8SYaxun Liu!109 = !{!"clang version 4.0 "} 3952c864551SShiva Chen!110 = distinct !DISubprogram(name: "Scene_transformT", scope: !4, file: !4, line: 2182, type: !111, isLocal: false, isDefinition: true, scopeLine: 2183, flags: DIFlagPrototyped, isOptimized: true, unit: !0, retainedNodes: !116) 3968b7454a8SYaxun Liu!111 = !DISubroutineType(types: !112) 3978b7454a8SYaxun Liu!112 = !{!77, !83, !77, !80, !113, !115} 3988b7454a8SYaxun Liu!113 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !114, size: 64) 3998b7454a8SYaxun Liu!114 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) 4008b7454a8SYaxun Liu!115 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !75, size: 64) 4018b7454a8SYaxun Liu!116 = !{!117, !118, !119, !120, !121, !122, !147, !149, !150, !151, !152, !153} 4028b7454a8SYaxun Liu!117 = !DILocalVariable(name: "subshapeIdx", arg: 1, scope: !110, file: !4, line: 2182, type: !83) 4038b7454a8SYaxun Liu!118 = !DILocalVariable(name: "v", arg: 2, scope: !110, file: !4, line: 2182, type: !77) 4048b7454a8SYaxun Liu!119 = !DILocalVariable(name: "time", arg: 3, scope: !110, file: !4, line: 2182, type: !80) 4058b7454a8SYaxun Liu!120 = !DILocalVariable(name: "gScene", arg: 4, scope: !110, file: !4, line: 2182, type: !113) 4068b7454a8SYaxun Liu!121 = !DILocalVariable(name: "gSceneOffsets", arg: 5, scope: !110, file: !4, line: 2182, type: !115) 4078b7454a8SYaxun Liu!122 = !DILocalVariable(name: "ss", scope: !110, file: !4, line: 2184, type: !123) 4088b7454a8SYaxun Liu!123 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !124, size: 64) 4098b7454a8SYaxun Liu!124 = !DIDerivedType(tag: DW_TAG_typedef, name: "ShapeData", file: !4, line: 1949, baseType: !125) 4108b7454a8SYaxun Liu!125 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !4, line: 1927, size: 1024, elements: !126) 4118b7454a8SYaxun Liu!126 = !{!127, !128, !130, !131, !132, !133, !134, !135, !136, !137, !138, !141, !142, !145, !146} 4128b7454a8SYaxun Liu!127 = !DIDerivedType(tag: DW_TAG_member, name: "m_translation", scope: !125, file: !4, line: 1929, baseType: !77, size: 128) 4138b7454a8SYaxun Liu!128 = !DIDerivedType(tag: DW_TAG_member, name: "m_quaternion", scope: !125, file: !4, line: 1930, baseType: !129, size: 128, offset: 128) 4148b7454a8SYaxun Liu!129 = !DIDerivedType(tag: DW_TAG_typedef, name: "Quaternion", file: !4, line: 625, baseType: !77) 4158b7454a8SYaxun Liu!130 = !DIDerivedType(tag: DW_TAG_member, name: "m_linearMotion", scope: !125, file: !4, line: 1931, baseType: !77, size: 128, offset: 256) 4168b7454a8SYaxun Liu!131 = !DIDerivedType(tag: DW_TAG_member, name: "m_angularMotion", scope: !125, file: !4, line: 1932, baseType: !77, size: 128, offset: 384) 4178b7454a8SYaxun Liu!132 = !DIDerivedType(tag: DW_TAG_member, name: "m_scaleMotion", scope: !125, file: !4, line: 1933, baseType: !77, size: 128, offset: 512) 4188b7454a8SYaxun Liu!133 = !DIDerivedType(tag: DW_TAG_member, name: "m_rootIdx", scope: !125, file: !4, line: 1935, baseType: !75, size: 32, offset: 640) 4198b7454a8SYaxun Liu!134 = !DIDerivedType(tag: DW_TAG_member, name: "m_materialIdx", scope: !125, file: !4, line: 1936, baseType: !75, size: 32, offset: 672) 4208b7454a8SYaxun Liu!135 = !DIDerivedType(tag: DW_TAG_member, name: "m_shapeAddr", scope: !125, file: !4, line: 1937, baseType: !102, size: 64, offset: 704) 4218b7454a8SYaxun Liu!136 = !DIDerivedType(tag: DW_TAG_member, name: "m_scale", scope: !125, file: !4, line: 1939, baseType: !77, size: 128, offset: 768) 4228b7454a8SYaxun Liu!137 = !DIDerivedType(tag: DW_TAG_member, name: "m_flags", scope: !125, file: !4, line: 1941, baseType: !75, size: 32, offset: 896) 4238b7454a8SYaxun Liu!138 = !DIDerivedType(tag: DW_TAG_member, name: "m_hasUv", scope: !125, file: !4, line: 1942, baseType: !139, size: 8, offset: 928) 4248b7454a8SYaxun Liu!139 = !DIDerivedType(tag: DW_TAG_typedef, name: "u8", file: !4, line: 87, baseType: !140) 4258b7454a8SYaxun Liu!140 = !DIBasicType(name: "unsigned char", size: 8, encoding: DW_ATE_unsigned_char) 4268b7454a8SYaxun Liu!141 = !DIDerivedType(tag: DW_TAG_member, name: "m_padd00", scope: !125, file: !4, line: 1943, baseType: !139, size: 8, offset: 936) 4278b7454a8SYaxun Liu!142 = !DIDerivedType(tag: DW_TAG_member, name: "m_objectGroupId", scope: !125, file: !4, line: 1944, baseType: !143, size: 16, offset: 944) 4288b7454a8SYaxun Liu!143 = !DIDerivedType(tag: DW_TAG_typedef, name: "u16", file: !4, line: 86, baseType: !144) 4298b7454a8SYaxun Liu!144 = !DIBasicType(name: "unsigned short", size: 16, encoding: DW_ATE_unsigned) 4308b7454a8SYaxun Liu!145 = !DIDerivedType(tag: DW_TAG_member, name: "m_faceIndexShift", scope: !125, file: !4, line: 1946, baseType: !75, size: 32, offset: 960) 4318b7454a8SYaxun Liu!146 = !DIDerivedType(tag: DW_TAG_member, name: "m_padd2", scope: !125, file: !4, line: 1947, baseType: !75, size: 32, offset: 992) 4328b7454a8SYaxun Liu!147 = !DILocalVariable(name: "mt", scope: !148, file: !4, line: 2187, type: !77) 4338b7454a8SYaxun Liu!148 = distinct !DILexicalBlock(scope: !110, file: !4, line: 2186, column: 2) 4348b7454a8SYaxun Liu!149 = !DILocalVariable(name: "ma", scope: !148, file: !4, line: 2188, type: !77) 4358b7454a8SYaxun Liu!150 = !DILocalVariable(name: "ms", scope: !148, file: !4, line: 2189, type: !77) 4368b7454a8SYaxun Liu!151 = !DILocalVariable(name: "t", scope: !148, file: !4, line: 2191, type: !77) 4378b7454a8SYaxun Liu!152 = !DILocalVariable(name: "q", scope: !148, file: !4, line: 2193, type: !129) 4388b7454a8SYaxun Liu!153 = !DILocalVariable(name: "w", scope: !148, file: !4, line: 2194, type: !80) 4398b7454a8SYaxun Liu!154 = !DILocation(line: 2182, column: 80, scope: !110) 4408b7454a8SYaxun Liu!155 = !DILocation(line: 2182, column: 102, scope: !110) 441