1 ; RUN: llc < %s -mtriple=arm64-apple-ios7.0 -mcpu=cyclone | FileCheck %s
3 define <8 x i1> @test1() {
5 ; CHECK: ; %bb.0: ; %entry
6 ; CHECK-NEXT: movi.16b v0, #0
9 %Shuff = shufflevector <8 x i1> <i1 0, i1 1, i1 2, i1 3, i1 4, i1 5, i1 6,
11 <8 x i1> <i1 0, i1 1, i1 2, i1 3, i1 4, i1 5, i1 6,
13 <8 x i32> <i32 2, i32 undef, i32 6, i32 undef, i32 10,
14 i32 12, i32 14, i32 0>
18 define <8 x i1>@test2() {
20 ; CHECK: ; %bb.0: ; %bb
21 ; CHECK-NEXT: movi d0, #0x0000ff00000000
24 %Shuff = shufflevector <8 x i1> zeroinitializer,
25 <8 x i1> <i1 0, i1 1, i1 1, i1 0, i1 0, i1 1, i1 0, i1 0>,
26 <8 x i32> <i32 2, i32 undef, i32 6, i32 undef, i32 10, i32 12, i32 14,
31 define <16 x i1> @test3(ptr %ptr, i32 %v) {
33 ; CHECK: ; %bb.0: ; %bb
34 ; CHECK-NEXT: movi.2d v0, #0x0000ff000000ff
37 %Shuff = shufflevector <16 x i1> <i1 0, i1 1, i1 1, i1 0, i1 0, i1 1, i1 0, i1 0, i1 0, i1 1, i1 1, i1 0, i1 0, i1 1, i1 0, i1 0>, <16 x i1> undef,
38 <16 x i32> <i32 2, i32 undef, i32 6, i32 undef, i32 10, i32 12, i32 14,
39 i32 0, i32 2, i32 undef, i32 6, i32 undef, i32 10, i32 12,
43 ; CHECK-LABEL: lCPI3_0:
44 ; CHECK: .byte 0 ; 0x0
45 ; CHECK: .byte 0 ; 0x0
46 ; CHECK: .byte 0 ; 0x0
47 ; CHECK: .byte 255 ; 0xff
48 ; CHECK: .byte 0 ; 0x0
49 ; CHECK: .byte 0 ; 0x0
50 ; CHECK: .byte 0 ; 0x0
51 ; CHECK: .byte 0 ; 0x0
52 ; CHECK: .byte 0 ; 0x0
53 ; CHECK: .byte 0 ; 0x0
54 ; CHECK: .byte 0 ; 0x0
55 ; CHECK: .byte 0 ; 0x0
56 ; CHECK: .byte 0 ; 0x0
57 ; CHECK: .byte 0 ; 0x0
58 ; CHECK: .byte 0 ; 0x0
59 ; CHECK: .byte 0 ; 0x0
60 define <16 x i1> @test4(ptr %ptr, i32 %v) {
61 ; CHECK-LABEL: _test4:
62 ; CHECK: adrp x[[REG3:[0-9]+]], lCPI3_0@PAGE
63 ; CHECK: ldr q[[REG2:[0-9]+]], [x[[REG3]], lCPI3_0@PAGEOFF]
65 %Shuff = shufflevector <16 x i1> zeroinitializer,
66 <16 x i1> <i1 0, i1 1, i1 1, i1 0, i1 0, i1 1, i1 0, i1 0, i1 0, i1 1,
67 i1 1, i1 0, i1 0, i1 1, i1 0, i1 0>,
68 <16 x i32> <i32 2, i32 1, i32 6, i32 18, i32 10, i32 12, i32 14, i32 0,
69 i32 2, i32 31, i32 6, i32 30, i32 10, i32 12, i32 14, i32 0>