1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -mattr=+neon | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vext_s8(<8 x i8> %a, <8 x i8> %b) { 4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vext_s8: 5*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x2|2}} 6*9880d681SAndroid Build Coastguard Workerentry: 7*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9> 8*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %vext 9*9880d681SAndroid Build Coastguard Worker} 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vext_s16(<4 x i16> %a, <4 x i16> %b) { 12*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vext_s16: 13*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x6|6}} 14*9880d681SAndroid Build Coastguard Workerentry: 15*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 3, i32 4, i32 5, i32 6> 16*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %vext 17*9880d681SAndroid Build Coastguard Worker} 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vext_s32(<2 x i32> %a, <2 x i32> %b) { 20*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vext_s32: 21*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x4|4}} 22*9880d681SAndroid Build Coastguard Workerentry: 23*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 2> 24*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %vext 25*9880d681SAndroid Build Coastguard Worker} 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @test_vext_s64(<1 x i64> %a, <1 x i64> %b) { 28*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vext_s64: 29*9880d681SAndroid Build Coastguard Workerentry: 30*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <1 x i64> %a, <1 x i64> %b, <1 x i32> <i32 0> 31*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %vext 32*9880d681SAndroid Build Coastguard Worker} 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vextq_s8(<16 x i8> %a, <16 x i8> %b) { 35*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vextq_s8: 36*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x2|2}} 37*9880d681SAndroid Build Coastguard Workerentry: 38*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17> 39*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %vext 40*9880d681SAndroid Build Coastguard Worker} 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vextq_s16(<8 x i16> %a, <8 x i16> %b) { 43*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vextq_s16: 44*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x6|6}} 45*9880d681SAndroid Build Coastguard Workerentry: 46*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10> 47*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %vext 48*9880d681SAndroid Build Coastguard Worker} 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vextq_s32(<4 x i32> %a, <4 x i32> %b) { 51*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vextq_s32: 52*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x4|4}} 53*9880d681SAndroid Build Coastguard Workerentry: 54*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 1, i32 2, i32 3, i32 4> 55*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vext 56*9880d681SAndroid Build Coastguard Worker} 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vextq_s64(<2 x i64> %a, <2 x i64> %b) { 59*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vextq_s64: 60*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x8|8}} 61*9880d681SAndroid Build Coastguard Workerentry: 62*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 1, i32 2> 63*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %vext 64*9880d681SAndroid Build Coastguard Worker} 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vext_u8(<8 x i8> %a, <8 x i8> %b) { 67*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vext_u8: 68*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x2|2}} 69*9880d681SAndroid Build Coastguard Workerentry: 70*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9> 71*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %vext 72*9880d681SAndroid Build Coastguard Worker} 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vext_u16(<4 x i16> %a, <4 x i16> %b) { 75*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vext_u16: 76*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x6|6}} 77*9880d681SAndroid Build Coastguard Workerentry: 78*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 3, i32 4, i32 5, i32 6> 79*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %vext 80*9880d681SAndroid Build Coastguard Worker} 81*9880d681SAndroid Build Coastguard Worker 82*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vext_u32(<2 x i32> %a, <2 x i32> %b) { 83*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vext_u32: 84*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x4|4}} 85*9880d681SAndroid Build Coastguard Workerentry: 86*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 2> 87*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %vext 88*9880d681SAndroid Build Coastguard Worker} 89*9880d681SAndroid Build Coastguard Worker 90*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @test_vext_u64(<1 x i64> %a, <1 x i64> %b) { 91*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vext_u64: 92*9880d681SAndroid Build Coastguard Workerentry: 93*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <1 x i64> %a, <1 x i64> %b, <1 x i32> <i32 0> 94*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %vext 95*9880d681SAndroid Build Coastguard Worker} 96*9880d681SAndroid Build Coastguard Worker 97*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vextq_u8(<16 x i8> %a, <16 x i8> %b) { 98*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vextq_u8: 99*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x2|2}} 100*9880d681SAndroid Build Coastguard Workerentry: 101*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17> 102*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %vext 103*9880d681SAndroid Build Coastguard Worker} 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vextq_u16(<8 x i16> %a, <8 x i16> %b) { 106*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vextq_u16: 107*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x6|6}} 108*9880d681SAndroid Build Coastguard Workerentry: 109*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10> 110*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %vext 111*9880d681SAndroid Build Coastguard Worker} 112*9880d681SAndroid Build Coastguard Worker 113*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vextq_u32(<4 x i32> %a, <4 x i32> %b) { 114*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vextq_u32: 115*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x4|4}} 116*9880d681SAndroid Build Coastguard Workerentry: 117*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 1, i32 2, i32 3, i32 4> 118*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vext 119*9880d681SAndroid Build Coastguard Worker} 120*9880d681SAndroid Build Coastguard Worker 121*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vextq_u64(<2 x i64> %a, <2 x i64> %b) { 122*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vextq_u64: 123*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x8|8}} 124*9880d681SAndroid Build Coastguard Workerentry: 125*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 1, i32 2> 126*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %vext 127*9880d681SAndroid Build Coastguard Worker} 128*9880d681SAndroid Build Coastguard Worker 129*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @test_vext_f32(<2 x float> %a, <2 x float> %b) { 130*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vext_f32: 131*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x4|4}} 132*9880d681SAndroid Build Coastguard Workerentry: 133*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <2 x float> %a, <2 x float> %b, <2 x i32> <i32 1, i32 2> 134*9880d681SAndroid Build Coastguard Worker ret <2 x float> %vext 135*9880d681SAndroid Build Coastguard Worker} 136*9880d681SAndroid Build Coastguard Worker 137*9880d681SAndroid Build Coastguard Workerdefine <1 x double> @test_vext_f64(<1 x double> %a, <1 x double> %b) { 138*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vext_f64: 139*9880d681SAndroid Build Coastguard Workerentry: 140*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <1 x double> %a, <1 x double> %b, <1 x i32> <i32 0> 141*9880d681SAndroid Build Coastguard Worker ret <1 x double> %vext 142*9880d681SAndroid Build Coastguard Worker} 143*9880d681SAndroid Build Coastguard Worker 144*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_vextq_f32(<4 x float> %a, <4 x float> %b) { 145*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vextq_f32: 146*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x4|4}} 147*9880d681SAndroid Build Coastguard Workerentry: 148*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 1, i32 2, i32 3, i32 4> 149*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vext 150*9880d681SAndroid Build Coastguard Worker} 151*9880d681SAndroid Build Coastguard Worker 152*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_vextq_f64(<2 x double> %a, <2 x double> %b) { 153*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vextq_f64: 154*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x8|8}} 155*9880d681SAndroid Build Coastguard Workerentry: 156*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <2 x double> %a, <2 x double> %b, <2 x i32> <i32 1, i32 2> 157*9880d681SAndroid Build Coastguard Worker ret <2 x double> %vext 158*9880d681SAndroid Build Coastguard Worker} 159*9880d681SAndroid Build Coastguard Worker 160*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vext_p8(<8 x i8> %a, <8 x i8> %b) { 161*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vext_p8: 162*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x2|2}} 163*9880d681SAndroid Build Coastguard Workerentry: 164*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9> 165*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %vext 166*9880d681SAndroid Build Coastguard Worker} 167*9880d681SAndroid Build Coastguard Worker 168*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vext_p16(<4 x i16> %a, <4 x i16> %b) { 169*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vext_p16: 170*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x6|6}} 171*9880d681SAndroid Build Coastguard Workerentry: 172*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 3, i32 4, i32 5, i32 6> 173*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %vext 174*9880d681SAndroid Build Coastguard Worker} 175*9880d681SAndroid Build Coastguard Worker 176*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vextq_p8(<16 x i8> %a, <16 x i8> %b) { 177*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vextq_p8: 178*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x2|2}} 179*9880d681SAndroid Build Coastguard Workerentry: 180*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17> 181*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %vext 182*9880d681SAndroid Build Coastguard Worker} 183*9880d681SAndroid Build Coastguard Worker 184*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vextq_p16(<8 x i16> %a, <8 x i16> %b) { 185*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vextq_p16: 186*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x6|6}} 187*9880d681SAndroid Build Coastguard Workerentry: 188*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10> 189*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %vext 190*9880d681SAndroid Build Coastguard Worker} 191*9880d681SAndroid Build Coastguard Worker 192*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vext_s8(<8 x i8> %a) { 193*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vext_s8: 194*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x2|2}} 195*9880d681SAndroid Build Coastguard Workerentry: 196*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 10, i32 10, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9> 197*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %vext 198*9880d681SAndroid Build Coastguard Worker} 199*9880d681SAndroid Build Coastguard Worker 200*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vextq_s8(<16 x i8> %a) { 201*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vextq_s8: 202*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x6|6}} 203*9880d681SAndroid Build Coastguard Workerentry: 204*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 20, i32 20, i32 20, i32 20, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 20, i32 20, i32 20, i32 20, i32 20> 205*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %vext 206*9880d681SAndroid Build Coastguard Worker} 207*9880d681SAndroid Build Coastguard Worker 208*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vext_s16(<4 x i16> %a) { 209*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vext_s16: 210*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x4|4}} 211*9880d681SAndroid Build Coastguard Workerentry: 212*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 2, i32 3, i32 4, i32 5> 213*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %vext 214*9880d681SAndroid Build Coastguard Worker} 215*9880d681SAndroid Build Coastguard Worker 216*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vextq_s16(<8 x i16> %a) { 217*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vextq_s16: 218*9880d681SAndroid Build Coastguard Worker; CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x6|6}} 219*9880d681SAndroid Build Coastguard Workerentry: 220*9880d681SAndroid Build Coastguard Worker %vext = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 10, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10> 221*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %vext 222*9880d681SAndroid Build Coastguard Worker} 223