From 16db61238df3477de7debad3764510c344f7436d Mon Sep 17 00:00:00 2001 From: Michael Ilseman Date: Tue, 27 Nov 2012 00:47:20 +0000 Subject: [PATCH] Fast-math test for SimplifyInstruction: fold multiply by 0 llvm-svn: 168649 --- ...or-SimplifyInstruction-fold-multiply.patch | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 llvm/0007-Fast-math-test-for-SimplifyInstruction-fold-multiply.patch diff --git a/llvm/0007-Fast-math-test-for-SimplifyInstruction-fold-multiply.patch b/llvm/0007-Fast-math-test-for-SimplifyInstruction-fold-multiply.patch new file mode 100644 index 000000000000..54fd614394fc --- /dev/null +++ b/llvm/0007-Fast-math-test-for-SimplifyInstruction-fold-multiply.patch @@ -0,0 +1,55 @@ +From a3d62a84e2805fc54fe721610de350cf23469aa4 Mon Sep 17 00:00:00 2001 +From: Michael Ilseman +Date: Thu, 15 Nov 2012 10:04:58 -0800 +Subject: [PATCH 7/8] Fast-math test for SimplifyInstruction: fold multiply by + 0 + +--- + test/Transforms/InstSimplify/fast-math.ll | 35 +++++++++++++++++++++++++++++++ + 1 file changed, 35 insertions(+) + create mode 100644 test/Transforms/InstSimplify/fast-math.ll + +diff --git a/test/Transforms/InstSimplify/fast-math.ll b/test/Transforms/InstSimplify/fast-math.ll +new file mode 100644 +index 0000000..e4b3ea3 +--- /dev/null ++++ b/test/Transforms/InstSimplify/fast-math.ll +@@ -0,0 +1,35 @@ ++; RUN: opt < %s -instsimplify -S | FileCheck %s ++ ++;; x * 0 ==> 0 when no-nans and no-signed-zero ++; CHECK: mul_zero_1 ++define float @mul_zero_1(float %a) { ++ %b = fmul nsz nnan float %a, 0.0 ++; CHECK: ret float 0.0 ++ ret float %b ++} ++; CHECK: mul_zero_2 ++define float @mul_zero_2(float %a) { ++ %b = fmul fast float 0.0, %a ++; CHECK: ret float 0.0 ++ ret float %b ++} ++ ++;; x * 0 =/=> 0 when there could be nans or -0 ++; CHECK: no_mul_zero_1 ++define float @no_mul_zero_1(float %a) { ++ %b = fmul nsz float %a, 0.0 ++; CHECK: ret float %b ++ ret float %b ++} ++; CHECK: no_mul_zero_2 ++define float @no_mul_zero_2(float %a) { ++ %b = fmul nnan float %a, 0.0 ++; CHECK: ret float %b ++ ret float %b ++} ++; CHECK: no_mul_zero_3 ++define float @no_mul_zero_3(float %a) { ++ %b = fmul float %a, 0.0 ++; CHECK: ret float %b ++ ret float %b ++} +-- +1.7.12.2 (Apple Git-36) +