Quolyk created this revision.
Motivation: https://bugs.llvm.org/show_bug.cgi?id=34870
I'm totally not sure this is correct
https://reviews.llvm.org/D40594
Files:
lib/CodeGen/CGBuiltin.cpp
test/CodeGen/builtins.c
Index: test/CodeGen/builtins.c
===
--- test/CodeGen/builtins.c
+++ test/CodeGen/builtins.c
@@ -253,13 +253,16 @@
volatile long double resld;
resf = __builtin_fmodf(F,F);
- // CHECK: frem float
+ // CHECK: call float @fmodf(float %
+ // CHECK-NOT: readnone
resd = __builtin_fmod(D,D);
- // CHECK: frem double
+ // CHECK: call double @fmod(double %
+ // CHECK-NOT: readnone
resld = __builtin_fmodl(LD,LD);
- // CHECK: frem x86_fp80
+ // CHECK: call x86_fp80 @fmodl(x86_fp80 %
+ // CHECK-NOT: readnone
resf = __builtin_fabsf(F);
resd = __builtin_fabs(D);
Index: lib/CodeGen/CGBuiltin.cpp
===
--- lib/CodeGen/CGBuiltin.cpp
+++ lib/CodeGen/CGBuiltin.cpp
@@ -899,14 +899,6 @@
case Builtin::BI__builtin_fabsl: {
return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::fabs));
}
- case Builtin::BI__builtin_fmod:
- case Builtin::BI__builtin_fmodf:
- case Builtin::BI__builtin_fmodl: {
-Value *Arg1 = EmitScalarExpr(E->getArg(0));
-Value *Arg2 = EmitScalarExpr(E->getArg(1));
-Value *Result = Builder.CreateFRem(Arg1, Arg2, "fmod");
-return RValue::get(Result);
- }
case Builtin::BI__builtin_copysign:
case Builtin::BI__builtin_copysignf:
case Builtin::BI__builtin_copysignl: {
Index: test/CodeGen/builtins.c
===
--- test/CodeGen/builtins.c
+++ test/CodeGen/builtins.c
@@ -253,13 +253,16 @@
volatile long double resld;
resf = __builtin_fmodf(F,F);
- // CHECK: frem float
+ // CHECK: call float @fmodf(float %
+ // CHECK-NOT: readnone
resd = __builtin_fmod(D,D);
- // CHECK: frem double
+ // CHECK: call double @fmod(double %
+ // CHECK-NOT: readnone
resld = __builtin_fmodl(LD,LD);
- // CHECK: frem x86_fp80
+ // CHECK: call x86_fp80 @fmodl(x86_fp80 %
+ // CHECK-NOT: readnone
resf = __builtin_fabsf(F);
resd = __builtin_fabs(D);
Index: lib/CodeGen/CGBuiltin.cpp
===
--- lib/CodeGen/CGBuiltin.cpp
+++ lib/CodeGen/CGBuiltin.cpp
@@ -899,14 +899,6 @@
case Builtin::BI__builtin_fabsl: {
return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::fabs));
}
- case Builtin::BI__builtin_fmod:
- case Builtin::BI__builtin_fmodf:
- case Builtin::BI__builtin_fmodl: {
-Value *Arg1 = EmitScalarExpr(E->getArg(0));
-Value *Arg2 = EmitScalarExpr(E->getArg(1));
-Value *Result = Builder.CreateFRem(Arg1, Arg2, "fmod");
-return RValue::get(Result);
- }
case Builtin::BI__builtin_copysign:
case Builtin::BI__builtin_copysignf:
case Builtin::BI__builtin_copysignl: {
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits