| Index: test/CodeGen/JS/simd-shuffle.ll
|
| diff --git a/test/CodeGen/JS/simd-shuffle.ll b/test/CodeGen/JS/simd-shuffle.ll
|
| deleted file mode 100644
|
| index f0293288c130f06a6922dede9cd237ffc5c071f4..0000000000000000000000000000000000000000
|
| --- a/test/CodeGen/JS/simd-shuffle.ll
|
| +++ /dev/null
|
| @@ -1,524 +0,0 @@
|
| -; RUN: llc < %s | FileCheck %s
|
| -
|
| -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32-S128"
|
| -target triple = "asmjs-unknown-emscripten"
|
| -
|
| -; CHECK: function _splat_int32x4($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_swizzle($a, 0, 0, 0, 0);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x i32> @splat_int32x4(<4 x i32> %a, <4 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32><i32 0, i32 0, i32 0, i32 0>
|
| - ret <4 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzle_int32x4($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_swizzle($a, 0, 3, 1, 2);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x i32> @swizzle_int32x4(<4 x i32> %a, <4 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32><i32 0, i32 3, i32 1, i32 2>
|
| - ret <4 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzlehi_int32x4($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_swizzle($b, 2, 1, 3, 0);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x i32> @swizzlehi_int32x4(<4 x i32> %a, <4 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32><i32 6, i32 5, i32 7, i32 4>
|
| - ret <4 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffleXY_float32x4to3($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_shuffle($a, $b, 7, 0, 0);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x float> @shuffleXY_float32x4to3(<4 x float> %a, <4 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x float> %a, <4 x float> %b, <3 x i32><i32 7, i32 0, i32 undef>
|
| - ret <3 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffle_int32x4($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_shuffle($a, $b, 7, 0, 5, 3);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x i32> @shuffle_int32x4(<4 x i32> %a, <4 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32><i32 7, i32 0, i32 5, i32 3>
|
| - ret <4 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffleXY_int32x4($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_shuffle($a, $b, 7, 0, 0, 0);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x i32> @shuffleXY_int32x4(<4 x i32> %a, <4 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32><i32 7, i32 0, i32 undef, i32 undef>
|
| - ret <4 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _splat_int32x3($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_swizzle($a, 0, 0, 0, 0);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x i32> @splat_int32x3(<3 x i32> %a, <3 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x i32> %a, <3 x i32> %b, <3 x i32><i32 0, i32 0, i32 0>
|
| - ret <3 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzle_int32x3($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_swizzle($a, 0, 2, 1, 0);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x i32> @swizzle_int32x3(<3 x i32> %a, <3 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x i32> %a, <3 x i32> %b, <3 x i32><i32 0, i32 2, i32 1>
|
| - ret <3 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzlehi_int32x3($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_swizzle($b, 0, 2, 1, 0);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x i32> @swizzlehi_int32x3(<3 x i32> %a, <3 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x i32> %a, <3 x i32> %b, <3 x i32><i32 3, i32 5, i32 4>
|
| - ret <3 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffle_int32x3($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_shuffle($a, $b, 6, 0, 5);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x i32> @shuffle_int32x3(<3 x i32> %a, <3 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x i32> %a, <3 x i32> %b, <3 x i32><i32 5, i32 0, i32 4>
|
| - ret <3 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffleXY_int32x3($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_shuffle($a, $b, 6, 0, 0);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x i32> @shuffleXY_int32x3(<3 x i32> %a, <3 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x i32> %a, <3 x i32> %b, <3 x i32><i32 5, i32 0, i32 undef>
|
| - ret <3 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _splat_int32x3to4($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_swizzle($a, 0, 0, 0, 0);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x i32> @splat_int32x3to4(<3 x i32> %a, <3 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x i32> %a, <3 x i32> %b, <4 x i32><i32 0, i32 0, i32 0, i32 0>
|
| - ret <4 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzle_int32x3to4($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_swizzle($a, 0, 2, 1, 2);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x i32> @swizzle_int32x3to4(<3 x i32> %a, <3 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x i32> %a, <3 x i32> %b, <4 x i32><i32 0, i32 2, i32 1, i32 2>
|
| - ret <4 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzlehi_int32x3to4($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_swizzle($b, 2, 1, 0, 2);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x i32> @swizzlehi_int32x3to4(<3 x i32> %a, <3 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x i32> %a, <3 x i32> %b, <4 x i32><i32 5, i32 4, i32 3, i32 5>
|
| - ret <4 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffle_int32x3to4($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_shuffle($a, $b, 6, 0, 5, 2);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x i32> @shuffle_int32x3to4(<3 x i32> %a, <3 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x i32> %a, <3 x i32> %b, <4 x i32><i32 5, i32 0, i32 4, i32 2>
|
| - ret <4 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffleXY_int32x3to4($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_shuffle($a, $b, 6, 0, 0, 0);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x i32> @shuffleXY_int32x3to4(<3 x i32> %a, <3 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x i32> %a, <3 x i32> %b, <4 x i32><i32 5, i32 0, i32 undef, i32 undef>
|
| - ret <4 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _splat_int32x4to3($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_swizzle($a, 0, 0, 0, 0);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x i32> @splat_int32x4to3(<4 x i32> %a, <4 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x i32> %a, <4 x i32> %b, <3 x i32><i32 0, i32 0, i32 0>
|
| - ret <3 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzle_int32x4to3($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_swizzle($a, 0, 3, 1, 0);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x i32> @swizzle_int32x4to3(<4 x i32> %a, <4 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x i32> %a, <4 x i32> %b, <3 x i32><i32 0, i32 3, i32 1>
|
| - ret <3 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzlehi_int32x4to3($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_swizzle($b, 2, 1, 3, 0);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x i32> @swizzlehi_int32x4to3(<4 x i32> %a, <4 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x i32> %a, <4 x i32> %b, <3 x i32><i32 6, i32 5, i32 7>
|
| - ret <3 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffle_int32x4to3($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_shuffle($a, $b, 7, 0, 5);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x i32> @shuffle_int32x4to3(<4 x i32> %a, <4 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x i32> %a, <4 x i32> %b, <3 x i32><i32 7, i32 0, i32 5>
|
| - ret <3 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffleXY_int32x4to3($a,$b) {
|
| -; CHECK: $a = SIMD_int32x4_check($a);
|
| -; CHECK: $b = SIMD_int32x4_check($b);
|
| -; CHECK: var $sel = SIMD_int32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_int32x4_shuffle($a, $b, 7, 0, 0);
|
| -; CHECK: return (SIMD_int32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x i32> @shuffleXY_int32x4to3(<4 x i32> %a, <4 x i32> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x i32> %a, <4 x i32> %b, <3 x i32><i32 7, i32 0, i32 undef>
|
| - ret <3 x i32> %sel
|
| -}
|
| -
|
| -; CHECK: function _splat_float32x4($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_swizzle($a, 0, 0, 0, 0);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x float> @splat_float32x4(<4 x float> %a, <4 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32><i32 0, i32 0, i32 0, i32 0>
|
| - ret <4 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzle_float32x4($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_swizzle($a, 0, 3, 1, 2);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x float> @swizzle_float32x4(<4 x float> %a, <4 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32><i32 0, i32 3, i32 1, i32 2>
|
| - ret <4 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzlehi_float32x4($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_swizzle($b, 2, 1, 3, 0);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x float> @swizzlehi_float32x4(<4 x float> %a, <4 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32><i32 6, i32 5, i32 7, i32 4>
|
| - ret <4 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffle_float32x4($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_shuffle($a, $b, 7, 0, 5, 3);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x float> @shuffle_float32x4(<4 x float> %a, <4 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32><i32 7, i32 0, i32 5, i32 3>
|
| - ret <4 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffleXY_float32x4($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_shuffle($a, $b, 7, 0, 0, 0);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x float> @shuffleXY_float32x4(<4 x float> %a, <4 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32><i32 7, i32 0, i32 undef, i32 undef>
|
| - ret <4 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _splat_float32x3($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_swizzle($a, 0, 0, 0, 0);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x float> @splat_float32x3(<3 x float> %a, <3 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x float> %a, <3 x float> %b, <3 x i32><i32 0, i32 0, i32 0>
|
| - ret <3 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzle_float32x3($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_swizzle($a, 0, 2, 1, 0);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x float> @swizzle_float32x3(<3 x float> %a, <3 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x float> %a, <3 x float> %b, <3 x i32><i32 0, i32 2, i32 1>
|
| - ret <3 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzlehi_float32x3($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_swizzle($b, 0, 2, 1, 0);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x float> @swizzlehi_float32x3(<3 x float> %a, <3 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x float> %a, <3 x float> %b, <3 x i32><i32 3, i32 5, i32 4>
|
| - ret <3 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffle_float32x3($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_shuffle($a, $b, 6, 0, 5);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x float> @shuffle_float32x3(<3 x float> %a, <3 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x float> %a, <3 x float> %b, <3 x i32><i32 5, i32 0, i32 4>
|
| - ret <3 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffleXY_float32x3($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_shuffle($a, $b, 6, 0, 0);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x float> @shuffleXY_float32x3(<3 x float> %a, <3 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x float> %a, <3 x float> %b, <3 x i32><i32 5, i32 0, i32 undef>
|
| - ret <3 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _splat_float32x3to4($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_swizzle($a, 0, 0, 0, 0);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x float> @splat_float32x3to4(<3 x float> %a, <3 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x float> %a, <3 x float> %b, <4 x i32><i32 0, i32 0, i32 0, i32 0>
|
| - ret <4 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzle_float32x3to4($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_swizzle($a, 0, 2, 1, 2);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x float> @swizzle_float32x3to4(<3 x float> %a, <3 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x float> %a, <3 x float> %b, <4 x i32><i32 0, i32 2, i32 1, i32 2>
|
| - ret <4 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzlehi_float32x3to4($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_swizzle($b, 2, 1, 0, 2);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x float> @swizzlehi_float32x3to4(<3 x float> %a, <3 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x float> %a, <3 x float> %b, <4 x i32><i32 5, i32 4, i32 3, i32 5>
|
| - ret <4 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffle_float32x3to4($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_shuffle($a, $b, 6, 0, 5, 2);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x float> @shuffle_float32x3to4(<3 x float> %a, <3 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x float> %a, <3 x float> %b, <4 x i32><i32 5, i32 0, i32 4, i32 2>
|
| - ret <4 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffleXY_float32x3to4($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_shuffle($a, $b, 6, 0, 0, 0);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <4 x float> @shuffleXY_float32x3to4(<3 x float> %a, <3 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <3 x float> %a, <3 x float> %b, <4 x i32><i32 5, i32 0, i32 undef, i32 undef>
|
| - ret <4 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _splat_float32x4to3($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_swizzle($a, 0, 0, 0, 0);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x float> @splat_float32x4to3(<4 x float> %a, <4 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x float> %a, <4 x float> %b, <3 x i32><i32 0, i32 0, i32 0>
|
| - ret <3 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzle_float32x4to3($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_swizzle($a, 0, 3, 1, 0);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x float> @swizzle_float32x4to3(<4 x float> %a, <4 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x float> %a, <4 x float> %b, <3 x i32><i32 0, i32 3, i32 1>
|
| - ret <3 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _swizzlehi_float32x4to3($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_swizzle($b, 2, 1, 3, 0);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x float> @swizzlehi_float32x4to3(<4 x float> %a, <4 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x float> %a, <4 x float> %b, <3 x i32><i32 6, i32 5, i32 7>
|
| - ret <3 x float> %sel
|
| -}
|
| -
|
| -; CHECK: function _shuffle_float32x4to3($a,$b) {
|
| -; CHECK: $a = SIMD_float32x4_check($a);
|
| -; CHECK: $b = SIMD_float32x4_check($b);
|
| -; CHECK: var $sel = SIMD_float32x4(0,0,0,0)
|
| -; CHECK: $sel = SIMD_float32x4_shuffle($a, $b, 7, 0, 5);
|
| -; CHECK: return (SIMD_float32x4_check($sel));
|
| -; CHECK: }
|
| -define <3 x float> @shuffle_float32x4to3(<4 x float> %a, <4 x float> %b) nounwind {
|
| -entry:
|
| - %sel = shufflevector <4 x float> %a, <4 x float> %b, <3 x i32><i32 7, i32 0, i32 5>
|
| - ret <3 x float> %sel
|
| -}
|
|
|