From 0c326f07ca713fa00d0dcba8ec9b61e91298f690 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Fri, 26 Jul 2013 21:40:29 +0000 Subject: When InstCombine tries to fold away (fsub x, (fneg y)) into (fadd x, y), it is also worthwhile for it to look through FP extensions and truncations, whose application commutes with fneg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187249 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/InstCombine/fneg-ext.ll | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 test/Transforms/InstCombine/fneg-ext.ll (limited to 'test/Transforms/InstCombine/fneg-ext.ll') diff --git a/test/Transforms/InstCombine/fneg-ext.ll b/test/Transforms/InstCombine/fneg-ext.ll new file mode 100644 index 0000000000..49ad232526 --- /dev/null +++ b/test/Transforms/InstCombine/fneg-ext.ll @@ -0,0 +1,12 @@ +; RUN: opt -instcombine -S < %s | FileCheck %s + +; CHECK: test1 +define double @test1(float %a, double %b) nounwind readnone ssp uwtable { +; CHECK-NOT: fsub +; CHECK: fpext +; CHECK: fadd + %1 = fsub float -0.000000e+00, %a + %2 = fpext float %1 to double + %3 = fsub double %b, %2 + ret double %3 +} -- cgit v1.2.3