X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FSystemZ%2Fvec-perm-08.ll;h=a18ca7b7397543ed5c53a95f06ef976a740d3c6b;hb=4f50f9eba412b6c0d5e7a9616dfe7699a07cf17b;hp=4d06377f5a3b9d30e2c0a1205527867ce88c9d7b;hpb=aa5c996eda6dbaab398c8502717b37de2d10e4b7;p=oota-llvm.git diff --git a/test/CodeGen/SystemZ/vec-perm-08.ll b/test/CodeGen/SystemZ/vec-perm-08.ll index 4d06377f5a3..a18ca7b7397 100644 --- a/test/CodeGen/SystemZ/vec-perm-08.ll +++ b/test/CodeGen/SystemZ/vec-perm-08.ll @@ -128,3 +128,43 @@ define <2 x i64> @f11(<2 x i64> %val1, <2 x i64> %val2) { <2 x i32> ret <2 x i64> %ret } + +; Test a high1/low2 permute for v4f32. +define <4 x float> @f12(<4 x float> %val1, <4 x float> %val2) { +; CHECK-LABEL: f12: +; CHECK: vpdi %v24, %v24, %v26, 1 +; CHECK: br %r14 + %ret = shufflevector <4 x float> %val1, <4 x float> %val2, + <4 x i32> + ret <4 x float> %ret +} + +; Test a low2/high1 permute for v4f32. +define <4 x float> @f13(<4 x float> %val1, <4 x float> %val2) { +; CHECK-LABEL: f13: +; CHECK: vpdi %v24, %v26, %v24, 4 +; CHECK: br %r14 + %ret = shufflevector <4 x float> %val1, <4 x float> %val2, + <4 x i32> + ret <4 x float> %ret +} + +; Test a high1/low2 permute for v2f64. +define <2 x double> @f14(<2 x double> %val1, <2 x double> %val2) { +; CHECK-LABEL: f14: +; CHECK: vpdi %v24, %v24, %v26, 1 +; CHECK: br %r14 + %ret = shufflevector <2 x double> %val1, <2 x double> %val2, + <2 x i32> + ret <2 x double> %ret +} + +; Test a low2/high1 permute for v2f64. +define <2 x double> @f15(<2 x double> %val1, <2 x double> %val2) { +; CHECK-LABEL: f15: +; CHECK: vpdi %v24, %v26, %v24, 4 +; CHECK: br %r14 + %ret = shufflevector <2 x double> %val1, <2 x double> %val2, + <2 x i32> + ret <2 x double> %ret +}