diff options
Diffstat (limited to 'llvm/test/Analysis/ConstantFolding/fneg.ll')
| -rw-r--r-- | llvm/test/Analysis/ConstantFolding/fneg.ll | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/llvm/test/Analysis/ConstantFolding/fneg.ll b/llvm/test/Analysis/ConstantFolding/fneg.ll new file mode 100644 index 00000000000..70a2fe2a4bd --- /dev/null +++ b/llvm/test/Analysis/ConstantFolding/fneg.ll @@ -0,0 +1,42 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; RUN: opt < %s -constprop -S | FileCheck %s + +define float @fneg_constant() { +; CHECK-LABEL: @fneg_constant( +; CHECK-NEXT: ret float 0.000000e+00 +; + %r = fneg float -0.0 + ret float %r +} + +define float @fneg_undef() { +; CHECK-LABEL: @fneg_undef( +; CHECK-NEXT: ret float undef +; + %r = fneg float undef + ret float %r +} + +define <4 x float> @fneg_constant_elts_v4f32() { +; CHECK-LABEL: @fneg_constant_elts_v4f32( +; CHECK-NEXT: ret <4 x float> <float 0.000000e+00, float -0.000000e+00, float 1.000000e+00, float -1.000000e+00> +; + %r = fneg <4 x float> <float -0.0, float 0.0, float -1.0, float 1.0> + ret <4 x float> %r +} + +define <4 x float> @fneg_constant_undef_elts_v4f32() { +; CHECK-LABEL: @fneg_constant_undef_elts_v4f32( +; CHECK-NEXT: ret <4 x float> <float 0.000000e+00, float undef, float undef, float -1.000000e+00> +; + %r = fneg <4 x float> <float -0.0, float undef, float undef, float 1.0> + ret <4 x float> %r +} + +define <4 x float> @fneg_constant_all_undef_elts_v4f32() { +; CHECK-LABEL: @fneg_constant_all_undef_elts_v4f32( +; CHECK-NEXT: ret <4 x float> undef +; + %r = fneg <4 x float> <float undef, float undef, float undef, float undef> + ret <4 x float> %r +} |

