1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=arm64-apple-ios7.0 -mcpu=cyclone | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; CHECK: test1 5*9880d681SAndroid Build Coastguard Worker; CHECK: movi d[[REG0:[0-9]+]], #0000000000000000 6*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test1() { 7*9880d681SAndroid Build Coastguard Workerentry: 8*9880d681SAndroid Build Coastguard Worker %Shuff = shufflevector <8 x i1> <i1 0, i1 1, i1 2, i1 3, i1 4, i1 5, i1 6, 9*9880d681SAndroid Build Coastguard Worker i1 7>, 10*9880d681SAndroid Build Coastguard Worker <8 x i1> <i1 0, i1 1, i1 2, i1 3, i1 4, i1 5, i1 6, 11*9880d681SAndroid Build Coastguard Worker i1 7>, 12*9880d681SAndroid Build Coastguard Worker <8 x i32> <i32 2, i32 undef, i32 6, i32 undef, i32 10, 13*9880d681SAndroid Build Coastguard Worker i32 12, i32 14, i32 0> 14*9880d681SAndroid Build Coastguard Worker ret <8 x i1> %Shuff 15*9880d681SAndroid Build Coastguard Worker} 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker; CHECK: lCPI1_0: 18*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 19*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 20*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 21*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 22*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 1 ; 0x1 23*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 24*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 25*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 26*9880d681SAndroid Build Coastguard Worker; CHECK: test2 27*9880d681SAndroid Build Coastguard Worker; CHECK: adrp x[[REG2:[0-9]+]], lCPI1_0@PAGE 28*9880d681SAndroid Build Coastguard Worker; CHECK: ldr d[[REG1:[0-9]+]], [x[[REG2]], lCPI1_0@PAGEOFF] 29*9880d681SAndroid Build Coastguard Workerdefine <8 x i1>@test2() { 30*9880d681SAndroid Build Coastguard Workerbb: 31*9880d681SAndroid Build Coastguard Worker %Shuff = shufflevector <8 x i1> zeroinitializer, 32*9880d681SAndroid Build Coastguard Worker <8 x i1> <i1 0, i1 1, i1 1, i1 0, i1 0, i1 1, i1 0, i1 0>, 33*9880d681SAndroid Build Coastguard Worker <8 x i32> <i32 2, i32 undef, i32 6, i32 undef, i32 10, i32 12, i32 14, 34*9880d681SAndroid Build Coastguard Worker i32 0> 35*9880d681SAndroid Build Coastguard Worker ret <8 x i1> %Shuff 36*9880d681SAndroid Build Coastguard Worker} 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Worker; CHECK: test3 39*9880d681SAndroid Build Coastguard Worker; CHECK: movi.4s v{{[0-9]+}}, #1 40*9880d681SAndroid Build Coastguard Workerdefine <16 x i1> @test3(i1* %ptr, i32 %v) { 41*9880d681SAndroid Build Coastguard Workerbb: 42*9880d681SAndroid Build Coastguard Worker %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, 43*9880d681SAndroid Build Coastguard Worker <16 x i32> <i32 2, i32 undef, i32 6, i32 undef, i32 10, i32 12, i32 14, 44*9880d681SAndroid Build Coastguard Worker i32 0, i32 2, i32 undef, i32 6, i32 undef, i32 10, i32 12, 45*9880d681SAndroid Build Coastguard Worker i32 14, i32 0> 46*9880d681SAndroid Build Coastguard Worker ret <16 x i1> %Shuff 47*9880d681SAndroid Build Coastguard Worker} 48*9880d681SAndroid Build Coastguard Worker; CHECK: lCPI3_0: 49*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 50*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 51*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 52*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 1 ; 0x1 53*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 54*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 55*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 56*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 57*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 58*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 59*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 60*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 61*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 62*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 63*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 64*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 0 ; 0x0 65*9880d681SAndroid Build Coastguard Worker; CHECK: _test4: 66*9880d681SAndroid Build Coastguard Worker; CHECK: adrp x[[REG3:[0-9]+]], lCPI3_0@PAGE 67*9880d681SAndroid Build Coastguard Worker; CHECK: ldr q[[REG2:[0-9]+]], [x[[REG3]], lCPI3_0@PAGEOFF] 68*9880d681SAndroid Build Coastguard Workerdefine <16 x i1> @test4(i1* %ptr, i32 %v) { 69*9880d681SAndroid Build Coastguard Workerbb: 70*9880d681SAndroid Build Coastguard Worker %Shuff = shufflevector <16 x i1> zeroinitializer, 71*9880d681SAndroid Build Coastguard Worker <16 x i1> <i1 0, i1 1, i1 1, i1 0, i1 0, i1 1, i1 0, i1 0, i1 0, i1 1, 72*9880d681SAndroid Build Coastguard Worker i1 1, i1 0, i1 0, i1 1, i1 0, i1 0>, 73*9880d681SAndroid Build Coastguard Worker <16 x i32> <i32 2, i32 1, i32 6, i32 18, i32 10, i32 12, i32 14, i32 0, 74*9880d681SAndroid Build Coastguard Worker i32 2, i32 31, i32 6, i32 30, i32 10, i32 12, i32 14, i32 0> 75*9880d681SAndroid Build Coastguard Worker ret <16 x i1> %Shuff 76*9880d681SAndroid Build Coastguard Worker} 77