aboutsummaryrefslogtreecommitdiff
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/IR/Constants.cpp10
-rw-r--r--llvm/test/Transforms/Reassociate/crash2.ll2
2 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/IR/Constants.cpp b/llvm/lib/IR/Constants.cpp
index 650b076..9eefd01 100644
--- a/llvm/lib/IR/Constants.cpp
+++ b/llvm/lib/IR/Constants.cpp
@@ -2328,6 +2328,11 @@ bool ConstantExpr::isDesirableBinOp(unsigned Opcode) {
case Instruction::SDiv:
case Instruction::URem:
case Instruction::SRem:
+ case Instruction::FAdd:
+ case Instruction::FSub:
+ case Instruction::FMul:
+ case Instruction::FDiv:
+ case Instruction::FRem:
return false;
case Instruction::Add:
case Instruction::Sub:
@@ -2338,11 +2343,6 @@ bool ConstantExpr::isDesirableBinOp(unsigned Opcode) {
case Instruction::And:
case Instruction::Or:
case Instruction::Xor:
- case Instruction::FAdd:
- case Instruction::FSub:
- case Instruction::FMul:
- case Instruction::FDiv:
- case Instruction::FRem:
return true;
default:
llvm_unreachable("Argument must be binop opcode");
diff --git a/llvm/test/Transforms/Reassociate/crash2.ll b/llvm/test/Transforms/Reassociate/crash2.ll
index 0da5bde..f45fbef 100644
--- a/llvm/test/Transforms/Reassociate/crash2.ll
+++ b/llvm/test/Transforms/Reassociate/crash2.ll
@@ -7,7 +7,7 @@
define float @undef1() {
; CHECK-LABEL: @undef1(
-; CHECK-NEXT: ret float fadd (float bitcast (i32 ptrtoint (i32* @g to i32) to float), float fadd (float bitcast (i32 ptrtoint (i32* @g to i32) to float), float fadd (float fneg (float bitcast (i32 ptrtoint (i32* @g to i32) to float)), float fneg (float bitcast (i32 ptrtoint (i32* @g to i32) to float)))))
+; CHECK-NEXT: ret float 0.000000e+00
;
%t0 = fadd fast float bitcast (i32 ptrtoint (i32* @g to i32) to float), bitcast (i32 ptrtoint (i32* @g to i32) to float)
%t1 = fsub fast float bitcast (i32 ptrtoint (i32* @g to i32) to float), %t0