Allow AVX vrsqrtps generation.
[oota-llvm.git] / test / CodeGen / PowerPC / vperm-lowering.ll
1 ; RUN: llc -O0 -fast-isel=false -mcpu=ppc64 < %s | FileCheck %s
2
3 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32:64"
4 target triple = "powerpc64le-unknown-linux-gnu"
5
6 define <16 x i8> @foo() nounwind ssp {
7   %1 = shufflevector <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, <16 x i32> <i32 0, i32 5, i32 10, i32 15, i32 20, i32 25, i32 30, i32 3, i32 8, i32 13, i32 18, i32 23, i32 28, i32 1, i32 6, i32 11>
8   ret <16 x i8> %1
9 }
10
11 ; CHECK: .LCPI0_0:
12 ; CHECK: .byte 31
13 ; CHECK: .byte 26
14 ; CHECK: .byte 21
15 ; CHECK: .byte 16
16 ; CHECK: .byte 11
17 ; CHECK: .byte 6
18 ; CHECK: .byte 1
19 ; CHECK: .byte 28
20 ; CHECK: .byte 23
21 ; CHECK: .byte 18
22 ; CHECK: .byte 13
23 ; CHECK: .byte 8
24 ; CHECK: .byte 3
25 ; CHECK: .byte 30
26 ; CHECK: .byte 25
27 ; CHECK: .byte 20
28 ; CHECK: .LCPI0_1:
29 ; CHECK: .byte 0
30 ; CHECK: .byte 1
31 ; CHECK: .byte 2
32 ; CHECK: .byte 3
33 ; CHECK: .byte 4
34 ; CHECK: .byte 5
35 ; CHECK: .byte 6
36 ; CHECK: .byte 7
37 ; CHECK: .byte 8
38 ; CHECK: .byte 9
39 ; CHECK: .byte 10
40 ; CHECK: .byte 11
41 ; CHECK: .byte 12
42 ; CHECK: .byte 13
43 ; CHECK: .byte 14
44 ; CHECK: .byte 15
45 ; CHECK: .LCPI0_2:
46 ; CHECK: .byte 16
47 ; CHECK: .byte 17
48 ; CHECK: .byte 18
49 ; CHECK: .byte 19
50 ; CHECK: .byte 20
51 ; CHECK: .byte 21
52 ; CHECK: .byte 22
53 ; CHECK: .byte 23
54 ; CHECK: .byte 24
55 ; CHECK: .byte 25
56 ; CHECK: .byte 26
57 ; CHECK: .byte 27
58 ; CHECK: .byte 28
59 ; CHECK: .byte 29
60 ; CHECK: .byte 30
61 ; CHECK: .byte 31
62 ; CHECK: foo:
63 ; CHECK: addis [[REG1:[0-9]+]], 2, .LCPI0_2@toc@ha
64 ; CHECK: addi [[REG2:[0-9]+]], [[REG1]], .LCPI0_2@toc@l
65 ; CHECK: lvx [[REG3:[0-9]+]], 0, [[REG2]]
66 ; CHECK: vperm {{[0-9]+}}, [[REG3]], {{[0-9]+}}, {{[0-9]+}}