xref: /aosp_15_r20/external/llvm/test/CodeGen/PowerPC/p8altivec-shuffles-pred.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Workertarget datalayout = "E-m:e-i64:64-n32:64"
3*9880d681SAndroid Build Coastguard Workertarget triple = "powerpc64-unknown-linux-gnu"
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
6*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test1(<4 x i32> %wide.vec) #0 {
7*9880d681SAndroid Build Coastguard Workerentry:
8*9880d681SAndroid Build Coastguard Worker  %strided.vec = shufflevector <4 x i32> %wide.vec, <4 x i32> undef, <2 x i32> <i32 0, i32 2>
9*9880d681SAndroid Build Coastguard Worker  ret <2 x i32> %strided.vec
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test1
12*9880d681SAndroid Build Coastguard Worker; CHECK: xxswapd 35, 34
13*9880d681SAndroid Build Coastguard Worker; CHECK: vmrghw 2, 2, 3
14*9880d681SAndroid Build Coastguard Worker; CHECK: blr
15*9880d681SAndroid Build Coastguard Worker}
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
18*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test2(<16 x i8> %wide.vec) #0 {
19*9880d681SAndroid Build Coastguard Workerentry:
20*9880d681SAndroid Build Coastguard Worker  %strided.vec = shufflevector <16 x i8> %wide.vec, <16 x i8> undef, <16 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 8, i32 9, i32 10, i32 11>
21*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %strided.vec
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test2
24*9880d681SAndroid Build Coastguard Worker; CHECK: vsldoi 2, 2, 2, 12
25*9880d681SAndroid Build Coastguard Worker; CHECK: blr
26*9880d681SAndroid Build Coastguard Worker}
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind "target-cpu"="pwr7" }
29*9880d681SAndroid Build Coastguard Worker
30