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