@@ -10094,14 +10094,8 @@ static Value *EmitX86FMAExpr(CodeGenFunction &CGF, ArrayRef<Value *> Ops,
10094
10094
Res = CGF.Builder.CreateCall(Intr, {A, B, C, Ops.back() });
10095
10095
} else {
10096
10096
llvm::Type *Ty = A->getType();
10097
- Function *FMA;
10098
- if (CGF.Builder.getIsFPConstrained()) {
10099
- FMA = CGF.CGM.getIntrinsic(Intrinsic::experimental_constrained_fma, Ty);
10100
- Res = CGF.Builder.CreateConstrainedFPCall(FMA, {A, B, C});
10101
- } else {
10102
- FMA = CGF.CGM.getIntrinsic(Intrinsic::fma, Ty);
10103
- Res = CGF.Builder.CreateCall(FMA, {A, B, C});
10104
- }
10097
+ Function *FMA = CGF.CGM.getIntrinsic(Intrinsic::fma, Ty);
10098
+ Res = CGF.Builder.CreateCall(FMA, {A, B, C} );
10105
10099
10106
10100
if (IsAddSub) {
10107
10101
// Negate even elts in C using a mask.
@@ -10111,11 +10105,7 @@ static Value *EmitX86FMAExpr(CodeGenFunction &CGF, ArrayRef<Value *> Ops,
10111
10105
Indices[i] = i + (i % 2) * NumElts;
10112
10106
10113
10107
Value *NegC = CGF.Builder.CreateFNeg(C);
10114
- Value *FMSub;
10115
- if (CGF.Builder.getIsFPConstrained())
10116
- FMSub = CGF.Builder.CreateConstrainedFPCall(FMA, {A, B, NegC} );
10117
- else
10118
- FMSub = CGF.Builder.CreateCall(FMA, {A, B, NegC} );
10108
+ Value *FMSub = CGF.Builder.CreateCall(FMA, {A, B, NegC} );
10119
10109
Res = CGF.Builder.CreateShuffleVector(FMSub, Res, Indices);
10120
10110
}
10121
10111
}
@@ -10174,10 +10164,6 @@ EmitScalarFMAExpr(CodeGenFunction &CGF, MutableArrayRef<Value *> Ops,
10174
10164
Intrinsic::x86_avx512_vfmadd_f64;
10175
10165
Res = CGF.Builder.CreateCall(CGF.CGM.getIntrinsic(IID),
10176
10166
{Ops[0], Ops[1], Ops[2], Ops[4]});
10177
- } else if (CGF.Builder.getIsFPConstrained()) {
10178
- Function *FMA = CGF.CGM.getIntrinsic(
10179
- Intrinsic::experimental_constrained_fma, Ops[0]->getType());
10180
- Res = CGF.Builder.CreateConstrainedFPCall(FMA, Ops.slice(0, 3));
10181
10167
} else {
10182
10168
Function *FMA = CGF.CGM.getIntrinsic(Intrinsic::fma, Ops[0]->getType());
10183
10169
Res = CGF.Builder.CreateCall(FMA, Ops.slice(0, 3));
@@ -11906,15 +11892,8 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
11906
11892
case X86::BI__builtin_ia32_sqrtss:
11907
11893
case X86::BI__builtin_ia32_sqrtsd: {
11908
11894
Value *A = Builder.CreateExtractElement(Ops[0], (uint64_t)0);
11909
- Function *F;
11910
- if (Builder.getIsFPConstrained()) {
11911
- F = CGM.getIntrinsic(Intrinsic::experimental_constrained_sqrt,
11912
- A->getType());
11913
- A = Builder.CreateConstrainedFPCall(F, {A});
11914
- } else {
11915
- F = CGM.getIntrinsic(Intrinsic::sqrt, A->getType());
11916
- A = Builder.CreateCall(F, {A});
11917
- }
11895
+ Function *F = CGM.getIntrinsic(Intrinsic::sqrt, A->getType());
11896
+ A = Builder.CreateCall(F, {A});
11918
11897
return Builder.CreateInsertElement(Ops[0], A, (uint64_t)0);
11919
11898
}
11920
11899
case X86::BI__builtin_ia32_sqrtsd_round_mask:
@@ -11929,15 +11908,8 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
11929
11908
return Builder.CreateCall(CGM.getIntrinsic(IID), Ops);
11930
11909
}
11931
11910
Value *A = Builder.CreateExtractElement(Ops[1], (uint64_t)0);
11932
- Function *F;
11933
- if (Builder.getIsFPConstrained()) {
11934
- F = CGM.getIntrinsic(Intrinsic::experimental_constrained_sqrt,
11935
- A->getType());
11936
- A = Builder.CreateConstrainedFPCall(F, A);
11937
- } else {
11938
- F = CGM.getIntrinsic(Intrinsic::sqrt, A->getType());
11939
- A = Builder.CreateCall(F, A);
11940
- }
11911
+ Function *F = CGM.getIntrinsic(Intrinsic::sqrt, A->getType());
11912
+ A = Builder.CreateCall(F, A);
11941
11913
Value *Src = Builder.CreateExtractElement(Ops[2], (uint64_t)0);
11942
11914
A = EmitX86ScalarSelect(*this, Ops[3], A, Src);
11943
11915
return Builder.CreateInsertElement(Ops[0], A, (uint64_t)0);
@@ -11959,14 +11931,8 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
11959
11931
return Builder.CreateCall(CGM.getIntrinsic(IID), Ops);
11960
11932
}
11961
11933
}
11962
- if (Builder.getIsFPConstrained()) {
11963
- Function *F = CGM.getIntrinsic(Intrinsic::experimental_constrained_sqrt,
11964
- Ops[0]->getType());
11965
- return Builder.CreateConstrainedFPCall(F, Ops[0]);
11966
- } else {
11967
- Function *F = CGM.getIntrinsic(Intrinsic::sqrt, Ops[0]->getType());
11968
- return Builder.CreateCall(F, Ops[0]);
11969
- }
11934
+ Function *F = CGM.getIntrinsic(Intrinsic::sqrt, Ops[0]->getType());
11935
+ return Builder.CreateCall(F, Ops[0]);
11970
11936
}
11971
11937
case X86::BI__builtin_ia32_pabsb128:
11972
11938
case X86::BI__builtin_ia32_pabsw128:
0 commit comments