[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / PowerPC / cannonicalize-vector-shifts.ll
blobb0fbc16e1b812da80a73136a4ded2e32e30a695a
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
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
11 define <4 x i32> @test1(<4 x i32> %a) {
12 entry:
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
19 define <8 x i16> @test2(<8 x i16> %a) #0 {
20 entry:
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
27 define <16 x i8> @test3(<16 x i8> %a) #0 {
28 entry:
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