xref: /llvm-project/llvm/test/CodeGen/PowerPC/cannonicalize-vector-shifts.ll (revision 6b7838b68cc49621f3c92d8603f95e801d10f759)
1; RUN: llc -mcpu=pwr8 -mtriple=powerpc64le-unknown-linux-gnu \
2; RUN:   -verify-machineinstrs < %s | FileCheck %s
3; RUN: llc -mcpu=pwr8 -mtriple=powerpc64-unknown-linux-gnu \
4; RUN:   -verify-machineinstrs < %s | FileCheck %s
5
6; RUN: llc -mcpu=pwr8 -vec-extabi -mtriple=powerpc64-ibm-aix-xcoff \
7; RUN:   -verify-machineinstrs < %s | FileCheck %s
8; RUN: llc -mcpu=pwr8 -vec-extabi -mtriple=powerpc-ibm-aix-xcoff \
9; RUN:   -verify-machineinstrs < %s | FileCheck %s
10
11define <4 x i32> @test1(<4 x i32> %a) {
12entry:
13; CHECK-LABEL: test1
14; CHECK: xxswapd 34, 34
15  %vecins6 = shufflevector <4 x i32> %a, <4 x i32> undef, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
16  ret <4 x i32> %vecins6
17}
18
19define <8 x i16> @test2(<8 x i16> %a) #0 {
20entry:
21; CHECK-LABEL: test2
22; CHECK: xxswapd 34, 34
23  %vecins14 = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 0, i32 1, i32 2, i32 3>
24  ret <8 x i16> %vecins14
25}
26
27define <16 x i8> @test3(<16 x i8> %a) #0 {
28entry:
29; CHECK-LABEL: test3
30; CHECK: xxswapd 34, 34
31  %vecins30 = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
32  ret <16 x i8> %vecins30
33}
34