diff options
| author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2016-09-07 14:50:07 +0000 |
|---|---|---|
| committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2016-09-07 14:50:07 +0000 |
| commit | bdd576dbb0fe4934c216819645787a563bff0914 (patch) | |
| tree | df06356d2b995f17d613d24cab9f5707b7b3367b /llvm/test/Transforms/InstSimplify | |
| parent | 32cfa5ba839a9b54f53519108c1a45fb4d046ef4 (diff) | |
| download | bcm5719-llvm-bdd576dbb0fe4934c216819645787a563bff0914.tar.gz bcm5719-llvm-bdd576dbb0fe4934c216819645787a563bff0914.zip | |
Regenerate vector bitcast folding tests using update_test_checks.py.
Two tests have been merged together, regenerated and then moved to
a more appropriate directory. No functional change.
llvm-svn: 280814
Diffstat (limited to 'llvm/test/Transforms/InstSimplify')
| -rw-r--r-- | llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll b/llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll new file mode 100644 index 00000000000..687834381fa --- /dev/null +++ b/llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll @@ -0,0 +1,125 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; RUN: opt < %s -instsimplify -S | FileCheck %s +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-f64:32:64-v64:64:64-v128:128:128" + +define <2 x i64> @test1() { +; CHECK-LABEL: @test1( +; CHECK-NEXT: ret <2 x i64> <i64 4294967296, i64 12884901890> +; + %tmp3 = bitcast <4 x i32> < i32 0, i32 1, i32 2, i32 3 > to <2 x i64> + ret <2 x i64> %tmp3 +} + +define <4 x i32> @test2() { +; CHECK-LABEL: @test2( +; CHECK-NEXT: ret <4 x i32> <i32 0, i32 0, i32 1, i32 0> +; + %tmp3 = bitcast <2 x i64> < i64 0, i64 1 > to <4 x i32> + ret <4 x i32> %tmp3 +} + +define <2 x double> @test3() { +; CHECK-LABEL: @test3( +; CHECK-NEXT: ret <2 x double> <double 0x100000000, double 0x300000002> +; + %tmp3 = bitcast <4 x i32> < i32 0, i32 1, i32 2, i32 3 > to <2 x double> + ret <2 x double> %tmp3 +} + +define <4 x float> @test4() { +; CHECK-LABEL: @test4( +; CHECK-NEXT: ret <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0x36A0000000000000, float 0.000000e+00> +; + %tmp3 = bitcast <2 x i64> < i64 0, i64 1 > to <4 x float> + ret <4 x float> %tmp3 +} + +define <2 x i64> @test5() { +; CHECK-LABEL: @test5( +; CHECK-NEXT: ret <2 x i64> <i64 4575657221408423936, i64 4629700418010611712> +; + %tmp3 = bitcast <4 x float> <float 0.0, float 1.0, float 2.0, float 3.0> to <2 x i64> + ret <2 x i64> %tmp3 +} + +define <4 x i32> @test6() { +; CHECK-LABEL: @test6( +; CHECK-NEXT: ret <4 x i32> <i32 0, i32 1071644672, i32 0, i32 1072693248> +; + %tmp3 = bitcast <2 x double> <double 0.5, double 1.0> to <4 x i32> + ret <4 x i32> %tmp3 +} + +define i32 @test7() { +; CHECK-LABEL: @test7( +; CHECK-NEXT: ret i32 1118464 +; + %tmp3 = bitcast <2 x half> <half 0xH1100, half 0xH0011> to i32 + ret i32 %tmp3 +} + +define <4 x i32> @test8(<1 x i64> %y) { +; CHECK-LABEL: @test8( +; CHECK-NEXT: ret <4 x i32> zeroinitializer +; + %c = bitcast <2 x i64> <i64 0, i64 0> to <4 x i32> + ret <4 x i32> %c +} + +define <4 x i32> @test9(<1 x i64> %y) { +; CHECK-LABEL: @test9( +; CHECK-NEXT: ret <4 x i32> <i32 -1, i32 -1, i32 -1, i32 -1> +; + %c = bitcast <2 x i64> <i64 -1, i64 -1> to <4 x i32> + ret <4 x i32> %c +} + +; from MultiSource/Benchmarks/Bullet +define <2 x float> @foo() { +; CHECK-LABEL: @foo( +; CHECK-NEXT: ret <2 x float> <float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000> +; + %cast = bitcast i64 -1 to <2 x float> + ret <2 x float> %cast +} + + +define <2 x double> @foo2() { +; CHECK-LABEL: @foo2( +; CHECK-NEXT: ret <2 x double> <double 0xFFFFFFFFFFFFFFFF, double 0xFFFFFFFFFFFFFFFF> +; + %cast = bitcast i128 -1 to <2 x double> + ret <2 x double> %cast +} + +define <1 x float> @foo3() { +; CHECK-LABEL: @foo3( +; CHECK-NEXT: ret <1 x float> <float 0xFFFFFFFFE0000000> +; + %cast = bitcast i32 -1 to <1 x float> + ret <1 x float> %cast +} + +define float @foo4() { +; CHECK-LABEL: @foo4( +; CHECK-NEXT: ret float 0xFFFFFFFFE0000000 +; + %cast = bitcast <1 x i32 ><i32 -1> to float + ret float %cast +} + +define double @foo5() { +; CHECK-LABEL: @foo5( +; CHECK-NEXT: ret double 0xFFFFFFFFFFFFFFFF +; + %cast = bitcast <2 x i32 ><i32 -1, i32 -1> to double + ret double %cast +} + +define <2 x double> @foo6() { +; CHECK-LABEL: @foo6( +; CHECK-NEXT: ret <2 x double> <double 0xFFFFFFFFFFFFFFFF, double 0xFFFFFFFFFFFFFFFF> +; + %cast = bitcast <4 x i32><i32 -1, i32 -1, i32 -1, i32 -1> to <2 x double> + ret <2 x double> %cast +} |

