MSE18V2 2.4.0 AIR excerpt; original complete-text line numbers. SHA256: 1d5bd8d5a3917afbb3b4fe1c40b44480760614102685ac826e84ad2e30a450f9 3364: 158: ; preds = %109, %85 3365: %159 = phi <2 x float> [ %155, %109 ], [ %86, %85 ] 3366: %160 = tail call fast float @air.fast_fabs.f32(float %5) #2 3367: %161 = fcmp fast ogt float %160, 0x3EB0C6F7A0000000 3368: br i1 %161, label %162, label %209 3369: 3370: 162: ; preds = %158 3371: %163 = bitcast [4 x <2 x i32>]* %17 to i8* 3372: call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %163) #10 3373: %164 = getelementptr inbounds [4 x <2 x i32>], [4 x <2 x i32>]* %17, i64 0, i64 0 3374: store <2 x i32> , <2 x i32>* %164, align 8 3375: %165 = getelementptr inbounds [4 x <2 x i32>], [4 x <2 x i32>]* %17, i64 0, i64 1 3376: store <2 x i32> , <2 x i32>* %165, align 8 3377: %166 = getelementptr inbounds [4 x <2 x i32>], [4 x <2 x i32>]* %17, i64 0, i64 2 3378: store <2 x i32> , <2 x i32>* %166, align 8 3379: %167 = getelementptr inbounds [4 x <2 x i32>], [4 x <2 x i32>]* %17, i64 0, i64 3 3380: store <2 x i32> , <2 x i32>* %167, align 8 3381: %168 = insertelement <2 x float> undef, float %5, i64 0 3382: %169 = shufflevector <2 x float> %168, <2 x float> undef, <2 x i32> zeroinitializer 3383: br label %171 3384: 3385: 170: ; preds = %205 3386: call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %163) #10 3387: br label %209 3388: 3389: 171: ; preds = %205, %162 3390: %172 = phi <2 x float> [ %159, %162 ], [ %206, %205 ] 3391: %173 = phi i32 [ 0, %162 ], [ %207, %205 ] 3392: %174 = zext i32 %173 to i64 3393: %175 = getelementptr inbounds [4 x <2 x i32>], [4 x <2 x i32>]* %17, i64 0, i64 %174 3394: %176 = load <2 x i32>, <2 x i32>* %175, align 8 3395: %177 = extractelement <2 x i32> %176, i64 0 3396: %178 = add nsw i32 %177, %2 3397: %179 = sext i32 %178 to i64 3398: %180 = getelementptr inbounds %struct.MSSFaceThinPoint, %struct.MSSFaceThinPoint addrspace(2)* %1, i64 %179, i32 0 3399: %181 = load <2 x float>, <2 x float> addrspace(2)* %180, align 8, !tbaa !74 3400: %182 = extractelement <2 x i32> %176, i64 1 3401: %183 = add nsw i32 %182, %2 3402: %184 = sext i32 %183 to i64 3403: %185 = getelementptr inbounds %struct.MSSFaceThinPoint, %struct.MSSFaceThinPoint addrspace(2)* %1, i64 %184, i32 0 3404: %186 = load <2 x float>, <2 x float> addrspace(2)* %185, align 8, !tbaa !74 3405: %187 = fsub fast <2 x float> %181, %186 3406: %188 = tail call fast float @air.dot.v2f32(<2 x float> %187, <2 x float> %187) #2 3407: %189 = tail call fast float @air.fast_sqrt.f32(float %188) #2 3408: %190 = fcmp fast ugt float %189, 0x3F1A36E2E0000000 3409: br i1 %190, label %191, label %205 3410: 3411: 191: ; preds = %171 3412: %192 = fsub fast <2 x float> %186, %181 3413: %193 = fsub fast <2 x float> %172, %181 3414: %194 = tail call fast float @air.dot.v2f32(<2 x float> %193, <2 x float> %193) #2 3415: %195 = tail call fast float @air.fast_sqrt.f32(float %194) #2 3416: %196 = fdiv fast float %195, %189 3417: %197 = fsub fast float 1.000000e+00, %196 3418: %198 = tail call fast float @air.fast_clamp.f32(float %197, float 0.000000e+00, float 1.000000e+00) #2 3419: %199 = insertelement <2 x float> undef, float %198, i64 0 3420: %200 = shufflevector <2 x float> %199, <2 x float> undef, <2 x i32> zeroinitializer 3421: %201 = fmul fast <2 x float> %192, %169 3422: %202 = fmul fast <2 x float> %201, %200 3423: %203 = fsub fast <2 x float> %172, %202 3424: %204 = tail call fast <2 x float> @air.fast_clamp.v2f32(<2 x float> %203, <2 x float> zeroinitializer, <2 x float> ) #2 3425: br label %205 3426: 3427: 205: ; preds = %191, %171 3428: %206 = phi <2 x float> [ %204, %191 ], [ %172, %171 ] 3429: %207 = add nuw nsw i32 %173, 1 3430: %208 = icmp eq i32 %207, 4 3431: br i1 %208, label %170, label %171, !llvm.loop !89