Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(760)

Unified Diff: test/CodeGen/JS/simd-shuffle.ll

Issue 1692803002: Remove Emscripten support (Closed) Base URL: https://chromium.googlesource.com/a/native_client/pnacl-llvm.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/CodeGen/JS/simd-shift.ll ('k') | test/CodeGen/JS/splat-precise-f32.ll » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
-}
« no previous file with comments | « test/CodeGen/JS/simd-shift.ll ('k') | test/CodeGen/JS/splat-precise-f32.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698