diff options
author | dim <dim@FreeBSD.org> | 2012-04-14 13:54:10 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2012-04-14 13:54:10 +0000 |
commit | 1fc08f5e9ef733ef1ce6f363fecedc2260e78974 (patch) | |
tree | 19c69a04768629f2d440944b71cbe90adae0b615 /test/Bitcode/shuffle.ll | |
parent | 07637c87f826cdf411f0673595e9bc92ebd793f2 (diff) | |
download | FreeBSD-src-1fc08f5e9ef733ef1ce6f363fecedc2260e78974.zip FreeBSD-src-1fc08f5e9ef733ef1ce6f363fecedc2260e78974.tar.gz |
Vendor import of llvm trunk r154661:
http://llvm.org/svn/llvm-project/llvm/trunk@r154661
Diffstat (limited to 'test/Bitcode/shuffle.ll')
-rw-r--r-- | test/Bitcode/shuffle.ll | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/Bitcode/shuffle.ll b/test/Bitcode/shuffle.ll new file mode 100644 index 0000000..c3c01c6 --- /dev/null +++ b/test/Bitcode/shuffle.ll @@ -0,0 +1,31 @@ +; RUN: llvm-as < %s | llvm-dis + +; <rdar://problem/8622574> +; tests the bitcodereader can handle the case where the reader will initially +; create shuffle with a place holder mask. + + +define <4 x float> @test(<2 x double> %d2) { +entry: + %call20.i = tail call <4 x float> @cmp(<2 x double> %d2, + <2 x double> bitcast ( + <4 x float> shufflevector ( + <3 x float> shufflevector ( + <4 x float> shufflevector ( + <3 x float> bitcast ( + i96 trunc ( + i128 bitcast (<2 x double> bitcast ( + <4 x i32> <i32 0, i32 0, i32 0, i32 undef> to <2 x double>) + to i128) to i96) + to <3 x float>), + <3 x float> undef, + <4 x i32> <i32 0, i32 1, i32 2, i32 undef>), + <4 x float> undef, + <3 x i32> <i32 0, i32 1, i32 2>), + <3 x float> undef, + <4 x i32> <i32 0, i32 1, i32 2, i32 undef>) + to <2 x double>)) + ret <4 x float> %call20.i +} + +declare <4 x float> @cmp(<2 x double>, <2 x double>) |