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 Worker%struct.int8x8x2_t = type { [2 x <8 x i8>] } 4*9880d681SAndroid Build Coastguard Worker%struct.int16x4x2_t = type { [2 x <4 x i16>] } 5*9880d681SAndroid Build Coastguard Worker%struct.int32x2x2_t = type { [2 x <2 x i32>] } 6*9880d681SAndroid Build Coastguard Worker%struct.uint8x8x2_t = type { [2 x <8 x i8>] } 7*9880d681SAndroid Build Coastguard Worker%struct.uint16x4x2_t = type { [2 x <4 x i16>] } 8*9880d681SAndroid Build Coastguard Worker%struct.uint32x2x2_t = type { [2 x <2 x i32>] } 9*9880d681SAndroid Build Coastguard Worker%struct.float32x2x2_t = type { [2 x <2 x float>] } 10*9880d681SAndroid Build Coastguard Worker%struct.poly8x8x2_t = type { [2 x <8 x i8>] } 11*9880d681SAndroid Build Coastguard Worker%struct.poly16x4x2_t = type { [2 x <4 x i16>] } 12*9880d681SAndroid Build Coastguard Worker%struct.int8x16x2_t = type { [2 x <16 x i8>] } 13*9880d681SAndroid Build Coastguard Worker%struct.int16x8x2_t = type { [2 x <8 x i16>] } 14*9880d681SAndroid Build Coastguard Worker%struct.int32x4x2_t = type { [2 x <4 x i32>] } 15*9880d681SAndroid Build Coastguard Worker%struct.uint8x16x2_t = type { [2 x <16 x i8>] } 16*9880d681SAndroid Build Coastguard Worker%struct.uint16x8x2_t = type { [2 x <8 x i16>] } 17*9880d681SAndroid Build Coastguard Worker%struct.uint32x4x2_t = type { [2 x <4 x i32>] } 18*9880d681SAndroid Build Coastguard Worker%struct.float32x4x2_t = type { [2 x <4 x float>] } 19*9880d681SAndroid Build Coastguard Worker%struct.poly8x16x2_t = type { [2 x <16 x i8>] } 20*9880d681SAndroid Build Coastguard Worker%struct.poly16x8x2_t = type { [2 x <8 x i16>] } 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vuzp1_s8(<8 x i8> %a, <8 x i8> %b) { 23*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1_s8: 24*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 25*9880d681SAndroid Build Coastguard Workerentry: 26*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 27*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 28*9880d681SAndroid Build Coastguard Worker} 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vuzp1q_s8(<16 x i8> %a, <16 x i8> %b) { 31*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1q_s8: 32*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 33*9880d681SAndroid Build Coastguard Workerentry: 34*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30> 35*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 36*9880d681SAndroid Build Coastguard Worker} 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vuzp1_s16(<4 x i16> %a, <4 x i16> %b) { 39*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1_s16: 40*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 41*9880d681SAndroid Build Coastguard Workerentry: 42*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 43*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 44*9880d681SAndroid Build Coastguard Worker} 45*9880d681SAndroid Build Coastguard Worker 46*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vuzp1q_s16(<8 x i16> %a, <8 x i16> %b) { 47*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1q_s16: 48*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 49*9880d681SAndroid Build Coastguard Workerentry: 50*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 51*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 52*9880d681SAndroid Build Coastguard Worker} 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vuzp1_s32(<2 x i32> %a, <2 x i32> %b) { 55*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1_s32: 56*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 57*9880d681SAndroid Build Coastguard Workerentry: 58*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 0, i32 2> 59*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %shuffle.i 60*9880d681SAndroid Build Coastguard Worker} 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vuzp1q_s32(<4 x i32> %a, <4 x i32> %b) { 63*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1q_s32: 64*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 65*9880d681SAndroid Build Coastguard Workerentry: 66*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 67*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 68*9880d681SAndroid Build Coastguard Worker} 69*9880d681SAndroid Build Coastguard Worker 70*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vuzp1q_s64(<2 x i64> %a, <2 x i64> %b) { 71*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1q_s64: 72*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 73*9880d681SAndroid Build Coastguard Workerentry: 74*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 0, i32 2> 75*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %shuffle.i 76*9880d681SAndroid Build Coastguard Worker} 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vuzp1_u8(<8 x i8> %a, <8 x i8> %b) { 79*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1_u8: 80*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 81*9880d681SAndroid Build Coastguard Workerentry: 82*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 83*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 84*9880d681SAndroid Build Coastguard Worker} 85*9880d681SAndroid Build Coastguard Worker 86*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vuzp1q_u8(<16 x i8> %a, <16 x i8> %b) { 87*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1q_u8: 88*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 89*9880d681SAndroid Build Coastguard Workerentry: 90*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30> 91*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 92*9880d681SAndroid Build Coastguard Worker} 93*9880d681SAndroid Build Coastguard Worker 94*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vuzp1_u16(<4 x i16> %a, <4 x i16> %b) { 95*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1_u16: 96*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 97*9880d681SAndroid Build Coastguard Workerentry: 98*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 99*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 100*9880d681SAndroid Build Coastguard Worker} 101*9880d681SAndroid Build Coastguard Worker 102*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vuzp1q_u16(<8 x i16> %a, <8 x i16> %b) { 103*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1q_u16: 104*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 105*9880d681SAndroid Build Coastguard Workerentry: 106*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 107*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 108*9880d681SAndroid Build Coastguard Worker} 109*9880d681SAndroid Build Coastguard Worker 110*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vuzp1_u32(<2 x i32> %a, <2 x i32> %b) { 111*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1_u32: 112*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 113*9880d681SAndroid Build Coastguard Workerentry: 114*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 0, i32 2> 115*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %shuffle.i 116*9880d681SAndroid Build Coastguard Worker} 117*9880d681SAndroid Build Coastguard Worker 118*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vuzp1q_u32(<4 x i32> %a, <4 x i32> %b) { 119*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1q_u32: 120*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 121*9880d681SAndroid Build Coastguard Workerentry: 122*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 123*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 124*9880d681SAndroid Build Coastguard Worker} 125*9880d681SAndroid Build Coastguard Worker 126*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vuzp1q_u64(<2 x i64> %a, <2 x i64> %b) { 127*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1q_u64: 128*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 129*9880d681SAndroid Build Coastguard Workerentry: 130*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 0, i32 2> 131*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %shuffle.i 132*9880d681SAndroid Build Coastguard Worker} 133*9880d681SAndroid Build Coastguard Worker 134*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @test_vuzp1_f32(<2 x float> %a, <2 x float> %b) { 135*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1_f32: 136*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 137*9880d681SAndroid Build Coastguard Workerentry: 138*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x float> %a, <2 x float> %b, <2 x i32> <i32 0, i32 2> 139*9880d681SAndroid Build Coastguard Worker ret <2 x float> %shuffle.i 140*9880d681SAndroid Build Coastguard Worker} 141*9880d681SAndroid Build Coastguard Worker 142*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_vuzp1q_f32(<4 x float> %a, <4 x float> %b) { 143*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1q_f32: 144*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 145*9880d681SAndroid Build Coastguard Workerentry: 146*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 147*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 148*9880d681SAndroid Build Coastguard Worker} 149*9880d681SAndroid Build Coastguard Worker 150*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_vuzp1q_f64(<2 x double> %a, <2 x double> %b) { 151*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1q_f64: 152*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 153*9880d681SAndroid Build Coastguard Workerentry: 154*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x double> %a, <2 x double> %b, <2 x i32> <i32 0, i32 2> 155*9880d681SAndroid Build Coastguard Worker ret <2 x double> %shuffle.i 156*9880d681SAndroid Build Coastguard Worker} 157*9880d681SAndroid Build Coastguard Worker 158*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vuzp1_p8(<8 x i8> %a, <8 x i8> %b) { 159*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1_p8: 160*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 161*9880d681SAndroid Build Coastguard Workerentry: 162*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 163*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 164*9880d681SAndroid Build Coastguard Worker} 165*9880d681SAndroid Build Coastguard Worker 166*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vuzp1q_p8(<16 x i8> %a, <16 x i8> %b) { 167*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1q_p8: 168*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 169*9880d681SAndroid Build Coastguard Workerentry: 170*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30> 171*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 172*9880d681SAndroid Build Coastguard Worker} 173*9880d681SAndroid Build Coastguard Worker 174*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vuzp1_p16(<4 x i16> %a, <4 x i16> %b) { 175*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1_p16: 176*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 177*9880d681SAndroid Build Coastguard Workerentry: 178*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 179*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 180*9880d681SAndroid Build Coastguard Worker} 181*9880d681SAndroid Build Coastguard Worker 182*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vuzp1q_p16(<8 x i16> %a, <8 x i16> %b) { 183*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp1q_p16: 184*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 185*9880d681SAndroid Build Coastguard Workerentry: 186*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 187*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 188*9880d681SAndroid Build Coastguard Worker} 189*9880d681SAndroid Build Coastguard Worker 190*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vuzp2_s8(<8 x i8> %a, <8 x i8> %b) { 191*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2_s8: 192*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 193*9880d681SAndroid Build Coastguard Workerentry: 194*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 195*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 196*9880d681SAndroid Build Coastguard Worker} 197*9880d681SAndroid Build Coastguard Worker 198*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vuzp2q_s8(<16 x i8> %a, <16 x i8> %b) { 199*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2q_s8: 200*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 201*9880d681SAndroid Build Coastguard Workerentry: 202*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31> 203*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 204*9880d681SAndroid Build Coastguard Worker} 205*9880d681SAndroid Build Coastguard Worker 206*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vuzp2_s16(<4 x i16> %a, <4 x i16> %b) { 207*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2_s16: 208*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 209*9880d681SAndroid Build Coastguard Workerentry: 210*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 211*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 212*9880d681SAndroid Build Coastguard Worker} 213*9880d681SAndroid Build Coastguard Worker 214*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vuzp2q_s16(<8 x i16> %a, <8 x i16> %b) { 215*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2q_s16: 216*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 217*9880d681SAndroid Build Coastguard Workerentry: 218*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 219*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 220*9880d681SAndroid Build Coastguard Worker} 221*9880d681SAndroid Build Coastguard Worker 222*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vuzp2_s32(<2 x i32> %a, <2 x i32> %b) { 223*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2_s32: 224*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 225*9880d681SAndroid Build Coastguard Workerentry: 226*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 3> 227*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %shuffle.i 228*9880d681SAndroid Build Coastguard Worker} 229*9880d681SAndroid Build Coastguard Worker 230*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vuzp2q_s32(<4 x i32> %a, <4 x i32> %b) { 231*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2q_s32: 232*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 233*9880d681SAndroid Build Coastguard Workerentry: 234*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 235*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 236*9880d681SAndroid Build Coastguard Worker} 237*9880d681SAndroid Build Coastguard Worker 238*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vuzp2q_s64(<2 x i64> %a, <2 x i64> %b) { 239*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2q_s64: 240*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 241*9880d681SAndroid Build Coastguard Workerentry: 242*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 1, i32 3> 243*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %shuffle.i 244*9880d681SAndroid Build Coastguard Worker} 245*9880d681SAndroid Build Coastguard Worker 246*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vuzp2_u8(<8 x i8> %a, <8 x i8> %b) { 247*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2_u8: 248*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 249*9880d681SAndroid Build Coastguard Workerentry: 250*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 251*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 252*9880d681SAndroid Build Coastguard Worker} 253*9880d681SAndroid Build Coastguard Worker 254*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vuzp2q_u8(<16 x i8> %a, <16 x i8> %b) { 255*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2q_u8: 256*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 257*9880d681SAndroid Build Coastguard Workerentry: 258*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31> 259*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 260*9880d681SAndroid Build Coastguard Worker} 261*9880d681SAndroid Build Coastguard Worker 262*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vuzp2_u16(<4 x i16> %a, <4 x i16> %b) { 263*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2_u16: 264*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 265*9880d681SAndroid Build Coastguard Workerentry: 266*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 267*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 268*9880d681SAndroid Build Coastguard Worker} 269*9880d681SAndroid Build Coastguard Worker 270*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vuzp2q_u16(<8 x i16> %a, <8 x i16> %b) { 271*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2q_u16: 272*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 273*9880d681SAndroid Build Coastguard Workerentry: 274*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 275*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 276*9880d681SAndroid Build Coastguard Worker} 277*9880d681SAndroid Build Coastguard Worker 278*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vuzp2_u32(<2 x i32> %a, <2 x i32> %b) { 279*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2_u32: 280*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 281*9880d681SAndroid Build Coastguard Workerentry: 282*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 3> 283*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %shuffle.i 284*9880d681SAndroid Build Coastguard Worker} 285*9880d681SAndroid Build Coastguard Worker 286*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vuzp2q_u32(<4 x i32> %a, <4 x i32> %b) { 287*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2q_u32: 288*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 289*9880d681SAndroid Build Coastguard Workerentry: 290*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 291*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 292*9880d681SAndroid Build Coastguard Worker} 293*9880d681SAndroid Build Coastguard Worker 294*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vuzp2q_u64(<2 x i64> %a, <2 x i64> %b) { 295*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2q_u64: 296*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 297*9880d681SAndroid Build Coastguard Workerentry: 298*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 1, i32 3> 299*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %shuffle.i 300*9880d681SAndroid Build Coastguard Worker} 301*9880d681SAndroid Build Coastguard Worker 302*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @test_vuzp2_f32(<2 x float> %a, <2 x float> %b) { 303*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2_f32: 304*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 305*9880d681SAndroid Build Coastguard Workerentry: 306*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x float> %a, <2 x float> %b, <2 x i32> <i32 1, i32 3> 307*9880d681SAndroid Build Coastguard Worker ret <2 x float> %shuffle.i 308*9880d681SAndroid Build Coastguard Worker} 309*9880d681SAndroid Build Coastguard Worker 310*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_vuzp2q_f32(<4 x float> %a, <4 x float> %b) { 311*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2q_f32: 312*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 313*9880d681SAndroid Build Coastguard Workerentry: 314*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 315*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 316*9880d681SAndroid Build Coastguard Worker} 317*9880d681SAndroid Build Coastguard Worker 318*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_vuzp2q_f64(<2 x double> %a, <2 x double> %b) { 319*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2q_f64: 320*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 321*9880d681SAndroid Build Coastguard Workerentry: 322*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x double> %a, <2 x double> %b, <2 x i32> <i32 1, i32 3> 323*9880d681SAndroid Build Coastguard Worker ret <2 x double> %shuffle.i 324*9880d681SAndroid Build Coastguard Worker} 325*9880d681SAndroid Build Coastguard Worker 326*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vuzp2_p8(<8 x i8> %a, <8 x i8> %b) { 327*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2_p8: 328*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 329*9880d681SAndroid Build Coastguard Workerentry: 330*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 331*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 332*9880d681SAndroid Build Coastguard Worker} 333*9880d681SAndroid Build Coastguard Worker 334*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vuzp2q_p8(<16 x i8> %a, <16 x i8> %b) { 335*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2q_p8: 336*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 337*9880d681SAndroid Build Coastguard Workerentry: 338*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31> 339*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 340*9880d681SAndroid Build Coastguard Worker} 341*9880d681SAndroid Build Coastguard Worker 342*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vuzp2_p16(<4 x i16> %a, <4 x i16> %b) { 343*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2_p16: 344*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 345*9880d681SAndroid Build Coastguard Workerentry: 346*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 347*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 348*9880d681SAndroid Build Coastguard Worker} 349*9880d681SAndroid Build Coastguard Worker 350*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vuzp2q_p16(<8 x i16> %a, <8 x i16> %b) { 351*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp2q_p16: 352*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 353*9880d681SAndroid Build Coastguard Workerentry: 354*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 355*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 356*9880d681SAndroid Build Coastguard Worker} 357*9880d681SAndroid Build Coastguard Worker 358*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vzip1_s8(<8 x i8> %a, <8 x i8> %b) { 359*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1_s8: 360*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 361*9880d681SAndroid Build Coastguard Workerentry: 362*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 363*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 364*9880d681SAndroid Build Coastguard Worker} 365*9880d681SAndroid Build Coastguard Worker 366*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vzip1q_s8(<16 x i8> %a, <16 x i8> %b) { 367*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1q_s8: 368*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 369*9880d681SAndroid Build Coastguard Workerentry: 370*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 371*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 372*9880d681SAndroid Build Coastguard Worker} 373*9880d681SAndroid Build Coastguard Worker 374*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vzip1_s16(<4 x i16> %a, <4 x i16> %b) { 375*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1_s16: 376*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 377*9880d681SAndroid Build Coastguard Workerentry: 378*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 379*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 380*9880d681SAndroid Build Coastguard Worker} 381*9880d681SAndroid Build Coastguard Worker 382*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vzip1q_s16(<8 x i16> %a, <8 x i16> %b) { 383*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1q_s16: 384*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 385*9880d681SAndroid Build Coastguard Workerentry: 386*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 387*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 388*9880d681SAndroid Build Coastguard Worker} 389*9880d681SAndroid Build Coastguard Worker 390*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vzip1_s32(<2 x i32> %a, <2 x i32> %b) { 391*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1_s32: 392*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 393*9880d681SAndroid Build Coastguard Workerentry: 394*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 0, i32 2> 395*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %shuffle.i 396*9880d681SAndroid Build Coastguard Worker} 397*9880d681SAndroid Build Coastguard Worker 398*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vzip1q_s32(<4 x i32> %a, <4 x i32> %b) { 399*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1q_s32: 400*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 401*9880d681SAndroid Build Coastguard Workerentry: 402*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 403*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 404*9880d681SAndroid Build Coastguard Worker} 405*9880d681SAndroid Build Coastguard Worker 406*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vzip1q_s64(<2 x i64> %a, <2 x i64> %b) { 407*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1q_s64: 408*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 409*9880d681SAndroid Build Coastguard Workerentry: 410*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 0, i32 2> 411*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %shuffle.i 412*9880d681SAndroid Build Coastguard Worker} 413*9880d681SAndroid Build Coastguard Worker 414*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vzip1_u8(<8 x i8> %a, <8 x i8> %b) { 415*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1_u8: 416*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 417*9880d681SAndroid Build Coastguard Workerentry: 418*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 419*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 420*9880d681SAndroid Build Coastguard Worker} 421*9880d681SAndroid Build Coastguard Worker 422*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vzip1q_u8(<16 x i8> %a, <16 x i8> %b) { 423*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1q_u8: 424*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 425*9880d681SAndroid Build Coastguard Workerentry: 426*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 427*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 428*9880d681SAndroid Build Coastguard Worker} 429*9880d681SAndroid Build Coastguard Worker 430*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vzip1_u16(<4 x i16> %a, <4 x i16> %b) { 431*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1_u16: 432*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 433*9880d681SAndroid Build Coastguard Workerentry: 434*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 435*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 436*9880d681SAndroid Build Coastguard Worker} 437*9880d681SAndroid Build Coastguard Worker 438*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vzip1q_u16(<8 x i16> %a, <8 x i16> %b) { 439*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1q_u16: 440*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 441*9880d681SAndroid Build Coastguard Workerentry: 442*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 443*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 444*9880d681SAndroid Build Coastguard Worker} 445*9880d681SAndroid Build Coastguard Worker 446*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vzip1_u32(<2 x i32> %a, <2 x i32> %b) { 447*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1_u32: 448*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 449*9880d681SAndroid Build Coastguard Workerentry: 450*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 0, i32 2> 451*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %shuffle.i 452*9880d681SAndroid Build Coastguard Worker} 453*9880d681SAndroid Build Coastguard Worker 454*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vzip1q_u32(<4 x i32> %a, <4 x i32> %b) { 455*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1q_u32: 456*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 457*9880d681SAndroid Build Coastguard Workerentry: 458*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 459*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 460*9880d681SAndroid Build Coastguard Worker} 461*9880d681SAndroid Build Coastguard Worker 462*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vzip1q_u64(<2 x i64> %a, <2 x i64> %b) { 463*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1q_u64: 464*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 465*9880d681SAndroid Build Coastguard Workerentry: 466*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 0, i32 2> 467*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %shuffle.i 468*9880d681SAndroid Build Coastguard Worker} 469*9880d681SAndroid Build Coastguard Worker 470*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @test_vzip1_f32(<2 x float> %a, <2 x float> %b) { 471*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1_f32: 472*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 473*9880d681SAndroid Build Coastguard Workerentry: 474*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x float> %a, <2 x float> %b, <2 x i32> <i32 0, i32 2> 475*9880d681SAndroid Build Coastguard Worker ret <2 x float> %shuffle.i 476*9880d681SAndroid Build Coastguard Worker} 477*9880d681SAndroid Build Coastguard Worker 478*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_vzip1q_f32(<4 x float> %a, <4 x float> %b) { 479*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1q_f32: 480*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 481*9880d681SAndroid Build Coastguard Workerentry: 482*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 483*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 484*9880d681SAndroid Build Coastguard Worker} 485*9880d681SAndroid Build Coastguard Worker 486*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_vzip1q_f64(<2 x double> %a, <2 x double> %b) { 487*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1q_f64: 488*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 489*9880d681SAndroid Build Coastguard Workerentry: 490*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x double> %a, <2 x double> %b, <2 x i32> <i32 0, i32 2> 491*9880d681SAndroid Build Coastguard Worker ret <2 x double> %shuffle.i 492*9880d681SAndroid Build Coastguard Worker} 493*9880d681SAndroid Build Coastguard Worker 494*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vzip1_p8(<8 x i8> %a, <8 x i8> %b) { 495*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1_p8: 496*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 497*9880d681SAndroid Build Coastguard Workerentry: 498*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 499*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 500*9880d681SAndroid Build Coastguard Worker} 501*9880d681SAndroid Build Coastguard Worker 502*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vzip1q_p8(<16 x i8> %a, <16 x i8> %b) { 503*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1q_p8: 504*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 505*9880d681SAndroid Build Coastguard Workerentry: 506*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 507*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 508*9880d681SAndroid Build Coastguard Worker} 509*9880d681SAndroid Build Coastguard Worker 510*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vzip1_p16(<4 x i16> %a, <4 x i16> %b) { 511*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1_p16: 512*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 513*9880d681SAndroid Build Coastguard Workerentry: 514*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 515*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 516*9880d681SAndroid Build Coastguard Worker} 517*9880d681SAndroid Build Coastguard Worker 518*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vzip1q_p16(<8 x i16> %a, <8 x i16> %b) { 519*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1q_p16: 520*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 521*9880d681SAndroid Build Coastguard Workerentry: 522*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 523*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 524*9880d681SAndroid Build Coastguard Worker} 525*9880d681SAndroid Build Coastguard Worker 526*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vzip2_s8(<8 x i8> %a, <8 x i8> %b) { 527*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2_s8: 528*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 529*9880d681SAndroid Build Coastguard Workerentry: 530*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 531*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 532*9880d681SAndroid Build Coastguard Worker} 533*9880d681SAndroid Build Coastguard Worker 534*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vzip2q_s8(<16 x i8> %a, <16 x i8> %b) { 535*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2q_s8: 536*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 537*9880d681SAndroid Build Coastguard Workerentry: 538*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31> 539*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 540*9880d681SAndroid Build Coastguard Worker} 541*9880d681SAndroid Build Coastguard Worker 542*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vzip2_s16(<4 x i16> %a, <4 x i16> %b) { 543*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2_s16: 544*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 545*9880d681SAndroid Build Coastguard Workerentry: 546*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 547*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 548*9880d681SAndroid Build Coastguard Worker} 549*9880d681SAndroid Build Coastguard Worker 550*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vzip2q_s16(<8 x i16> %a, <8 x i16> %b) { 551*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2q_s16: 552*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 553*9880d681SAndroid Build Coastguard Workerentry: 554*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 555*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 556*9880d681SAndroid Build Coastguard Worker} 557*9880d681SAndroid Build Coastguard Worker 558*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vzip2_s32(<2 x i32> %a, <2 x i32> %b) { 559*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2_s32: 560*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 561*9880d681SAndroid Build Coastguard Workerentry: 562*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 3> 563*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %shuffle.i 564*9880d681SAndroid Build Coastguard Worker} 565*9880d681SAndroid Build Coastguard Worker 566*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vzip2q_s32(<4 x i32> %a, <4 x i32> %b) { 567*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2q_s32: 568*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 569*9880d681SAndroid Build Coastguard Workerentry: 570*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 571*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 572*9880d681SAndroid Build Coastguard Worker} 573*9880d681SAndroid Build Coastguard Worker 574*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vzip2q_s64(<2 x i64> %a, <2 x i64> %b) { 575*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2q_s64: 576*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 577*9880d681SAndroid Build Coastguard Workerentry: 578*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 1, i32 3> 579*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %shuffle.i 580*9880d681SAndroid Build Coastguard Worker} 581*9880d681SAndroid Build Coastguard Worker 582*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vzip2_u8(<8 x i8> %a, <8 x i8> %b) { 583*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2_u8: 584*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 585*9880d681SAndroid Build Coastguard Workerentry: 586*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 587*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 588*9880d681SAndroid Build Coastguard Worker} 589*9880d681SAndroid Build Coastguard Worker 590*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vzip2q_u8(<16 x i8> %a, <16 x i8> %b) { 591*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2q_u8: 592*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 593*9880d681SAndroid Build Coastguard Workerentry: 594*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31> 595*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 596*9880d681SAndroid Build Coastguard Worker} 597*9880d681SAndroid Build Coastguard Worker 598*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vzip2_u16(<4 x i16> %a, <4 x i16> %b) { 599*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2_u16: 600*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 601*9880d681SAndroid Build Coastguard Workerentry: 602*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 603*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 604*9880d681SAndroid Build Coastguard Worker} 605*9880d681SAndroid Build Coastguard Worker 606*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vzip2q_u16(<8 x i16> %a, <8 x i16> %b) { 607*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2q_u16: 608*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 609*9880d681SAndroid Build Coastguard Workerentry: 610*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 611*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 612*9880d681SAndroid Build Coastguard Worker} 613*9880d681SAndroid Build Coastguard Worker 614*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vzip2_u32(<2 x i32> %a, <2 x i32> %b) { 615*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2_u32: 616*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 617*9880d681SAndroid Build Coastguard Workerentry: 618*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 3> 619*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %shuffle.i 620*9880d681SAndroid Build Coastguard Worker} 621*9880d681SAndroid Build Coastguard Worker 622*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vzip2q_u32(<4 x i32> %a, <4 x i32> %b) { 623*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2q_u32: 624*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 625*9880d681SAndroid Build Coastguard Workerentry: 626*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 627*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 628*9880d681SAndroid Build Coastguard Worker} 629*9880d681SAndroid Build Coastguard Worker 630*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vzip2q_u64(<2 x i64> %a, <2 x i64> %b) { 631*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2q_u64: 632*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 633*9880d681SAndroid Build Coastguard Workerentry: 634*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 1, i32 3> 635*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %shuffle.i 636*9880d681SAndroid Build Coastguard Worker} 637*9880d681SAndroid Build Coastguard Worker 638*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @test_vzip2_f32(<2 x float> %a, <2 x float> %b) { 639*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2_f32: 640*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 641*9880d681SAndroid Build Coastguard Workerentry: 642*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x float> %a, <2 x float> %b, <2 x i32> <i32 1, i32 3> 643*9880d681SAndroid Build Coastguard Worker ret <2 x float> %shuffle.i 644*9880d681SAndroid Build Coastguard Worker} 645*9880d681SAndroid Build Coastguard Worker 646*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_vzip2q_f32(<4 x float> %a, <4 x float> %b) { 647*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2q_f32: 648*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 649*9880d681SAndroid Build Coastguard Workerentry: 650*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 651*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 652*9880d681SAndroid Build Coastguard Worker} 653*9880d681SAndroid Build Coastguard Worker 654*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_vzip2q_f64(<2 x double> %a, <2 x double> %b) { 655*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2q_f64: 656*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 657*9880d681SAndroid Build Coastguard Workerentry: 658*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x double> %a, <2 x double> %b, <2 x i32> <i32 1, i32 3> 659*9880d681SAndroid Build Coastguard Worker ret <2 x double> %shuffle.i 660*9880d681SAndroid Build Coastguard Worker} 661*9880d681SAndroid Build Coastguard Worker 662*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vzip2_p8(<8 x i8> %a, <8 x i8> %b) { 663*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2_p8: 664*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 665*9880d681SAndroid Build Coastguard Workerentry: 666*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 667*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 668*9880d681SAndroid Build Coastguard Worker} 669*9880d681SAndroid Build Coastguard Worker 670*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vzip2q_p8(<16 x i8> %a, <16 x i8> %b) { 671*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2q_p8: 672*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 673*9880d681SAndroid Build Coastguard Workerentry: 674*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31> 675*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 676*9880d681SAndroid Build Coastguard Worker} 677*9880d681SAndroid Build Coastguard Worker 678*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vzip2_p16(<4 x i16> %a, <4 x i16> %b) { 679*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2_p16: 680*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 681*9880d681SAndroid Build Coastguard Workerentry: 682*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 683*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 684*9880d681SAndroid Build Coastguard Worker} 685*9880d681SAndroid Build Coastguard Worker 686*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vzip2q_p16(<8 x i16> %a, <8 x i16> %b) { 687*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip2q_p16: 688*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 689*9880d681SAndroid Build Coastguard Workerentry: 690*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 691*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 692*9880d681SAndroid Build Coastguard Worker} 693*9880d681SAndroid Build Coastguard Worker 694*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vtrn1_s8(<8 x i8> %a, <8 x i8> %b) { 695*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1_s8: 696*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 697*9880d681SAndroid Build Coastguard Workerentry: 698*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 699*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 700*9880d681SAndroid Build Coastguard Worker} 701*9880d681SAndroid Build Coastguard Worker 702*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vtrn1q_s8(<16 x i8> %a, <16 x i8> %b) { 703*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1q_s8: 704*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 705*9880d681SAndroid Build Coastguard Workerentry: 706*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30> 707*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 708*9880d681SAndroid Build Coastguard Worker} 709*9880d681SAndroid Build Coastguard Worker 710*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vtrn1_s16(<4 x i16> %a, <4 x i16> %b) { 711*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1_s16: 712*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 713*9880d681SAndroid Build Coastguard Workerentry: 714*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 715*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 716*9880d681SAndroid Build Coastguard Worker} 717*9880d681SAndroid Build Coastguard Worker 718*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vtrn1q_s16(<8 x i16> %a, <8 x i16> %b) { 719*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1q_s16: 720*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 721*9880d681SAndroid Build Coastguard Workerentry: 722*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 723*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 724*9880d681SAndroid Build Coastguard Worker} 725*9880d681SAndroid Build Coastguard Worker 726*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vtrn1_s32(<2 x i32> %a, <2 x i32> %b) { 727*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1_s32: 728*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 729*9880d681SAndroid Build Coastguard Workerentry: 730*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 0, i32 2> 731*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %shuffle.i 732*9880d681SAndroid Build Coastguard Worker} 733*9880d681SAndroid Build Coastguard Worker 734*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vtrn1q_s32(<4 x i32> %a, <4 x i32> %b) { 735*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1q_s32: 736*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 737*9880d681SAndroid Build Coastguard Workerentry: 738*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 739*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 740*9880d681SAndroid Build Coastguard Worker} 741*9880d681SAndroid Build Coastguard Worker 742*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vtrn1q_s64(<2 x i64> %a, <2 x i64> %b) { 743*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1q_s64: 744*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 745*9880d681SAndroid Build Coastguard Workerentry: 746*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 0, i32 2> 747*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %shuffle.i 748*9880d681SAndroid Build Coastguard Worker} 749*9880d681SAndroid Build Coastguard Worker 750*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vtrn1_u8(<8 x i8> %a, <8 x i8> %b) { 751*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1_u8: 752*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 753*9880d681SAndroid Build Coastguard Workerentry: 754*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 755*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 756*9880d681SAndroid Build Coastguard Worker} 757*9880d681SAndroid Build Coastguard Worker 758*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vtrn1q_u8(<16 x i8> %a, <16 x i8> %b) { 759*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1q_u8: 760*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 761*9880d681SAndroid Build Coastguard Workerentry: 762*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30> 763*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 764*9880d681SAndroid Build Coastguard Worker} 765*9880d681SAndroid Build Coastguard Worker 766*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vtrn1_u16(<4 x i16> %a, <4 x i16> %b) { 767*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1_u16: 768*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 769*9880d681SAndroid Build Coastguard Workerentry: 770*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 771*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 772*9880d681SAndroid Build Coastguard Worker} 773*9880d681SAndroid Build Coastguard Worker 774*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vtrn1q_u16(<8 x i16> %a, <8 x i16> %b) { 775*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1q_u16: 776*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 777*9880d681SAndroid Build Coastguard Workerentry: 778*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 779*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 780*9880d681SAndroid Build Coastguard Worker} 781*9880d681SAndroid Build Coastguard Worker 782*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vtrn1_u32(<2 x i32> %a, <2 x i32> %b) { 783*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1_u32: 784*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 785*9880d681SAndroid Build Coastguard Workerentry: 786*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 0, i32 2> 787*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %shuffle.i 788*9880d681SAndroid Build Coastguard Worker} 789*9880d681SAndroid Build Coastguard Worker 790*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vtrn1q_u32(<4 x i32> %a, <4 x i32> %b) { 791*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1q_u32: 792*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 793*9880d681SAndroid Build Coastguard Workerentry: 794*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 795*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 796*9880d681SAndroid Build Coastguard Worker} 797*9880d681SAndroid Build Coastguard Worker 798*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vtrn1q_u64(<2 x i64> %a, <2 x i64> %b) { 799*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1q_u64: 800*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 801*9880d681SAndroid Build Coastguard Workerentry: 802*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 0, i32 2> 803*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %shuffle.i 804*9880d681SAndroid Build Coastguard Worker} 805*9880d681SAndroid Build Coastguard Worker 806*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @test_vtrn1_f32(<2 x float> %a, <2 x float> %b) { 807*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1_f32: 808*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 809*9880d681SAndroid Build Coastguard Workerentry: 810*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x float> %a, <2 x float> %b, <2 x i32> <i32 0, i32 2> 811*9880d681SAndroid Build Coastguard Worker ret <2 x float> %shuffle.i 812*9880d681SAndroid Build Coastguard Worker} 813*9880d681SAndroid Build Coastguard Worker 814*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_vtrn1q_f32(<4 x float> %a, <4 x float> %b) { 815*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1q_f32: 816*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 817*9880d681SAndroid Build Coastguard Workerentry: 818*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 819*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 820*9880d681SAndroid Build Coastguard Worker} 821*9880d681SAndroid Build Coastguard Worker 822*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_vtrn1q_f64(<2 x double> %a, <2 x double> %b) { 823*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1q_f64: 824*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 825*9880d681SAndroid Build Coastguard Workerentry: 826*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x double> %a, <2 x double> %b, <2 x i32> <i32 0, i32 2> 827*9880d681SAndroid Build Coastguard Worker ret <2 x double> %shuffle.i 828*9880d681SAndroid Build Coastguard Worker} 829*9880d681SAndroid Build Coastguard Worker 830*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vtrn1_p8(<8 x i8> %a, <8 x i8> %b) { 831*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1_p8: 832*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 833*9880d681SAndroid Build Coastguard Workerentry: 834*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 835*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 836*9880d681SAndroid Build Coastguard Worker} 837*9880d681SAndroid Build Coastguard Worker 838*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vtrn1q_p8(<16 x i8> %a, <16 x i8> %b) { 839*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1q_p8: 840*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 841*9880d681SAndroid Build Coastguard Workerentry: 842*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30> 843*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 844*9880d681SAndroid Build Coastguard Worker} 845*9880d681SAndroid Build Coastguard Worker 846*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vtrn1_p16(<4 x i16> %a, <4 x i16> %b) { 847*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1_p16: 848*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 849*9880d681SAndroid Build Coastguard Workerentry: 850*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 851*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 852*9880d681SAndroid Build Coastguard Worker} 853*9880d681SAndroid Build Coastguard Worker 854*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vtrn1q_p16(<8 x i16> %a, <8 x i16> %b) { 855*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn1q_p16: 856*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 857*9880d681SAndroid Build Coastguard Workerentry: 858*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 859*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 860*9880d681SAndroid Build Coastguard Worker} 861*9880d681SAndroid Build Coastguard Worker 862*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vtrn2_s8(<8 x i8> %a, <8 x i8> %b) { 863*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2_s8: 864*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 865*9880d681SAndroid Build Coastguard Workerentry: 866*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 867*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 868*9880d681SAndroid Build Coastguard Worker} 869*9880d681SAndroid Build Coastguard Worker 870*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vtrn2q_s8(<16 x i8> %a, <16 x i8> %b) { 871*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2q_s8: 872*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 873*9880d681SAndroid Build Coastguard Workerentry: 874*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31> 875*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 876*9880d681SAndroid Build Coastguard Worker} 877*9880d681SAndroid Build Coastguard Worker 878*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vtrn2_s16(<4 x i16> %a, <4 x i16> %b) { 879*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2_s16: 880*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 881*9880d681SAndroid Build Coastguard Workerentry: 882*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 883*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 884*9880d681SAndroid Build Coastguard Worker} 885*9880d681SAndroid Build Coastguard Worker 886*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vtrn2q_s16(<8 x i16> %a, <8 x i16> %b) { 887*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2q_s16: 888*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 889*9880d681SAndroid Build Coastguard Workerentry: 890*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 891*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 892*9880d681SAndroid Build Coastguard Worker} 893*9880d681SAndroid Build Coastguard Worker 894*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vtrn2_s32(<2 x i32> %a, <2 x i32> %b) { 895*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2_s32: 896*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 897*9880d681SAndroid Build Coastguard Workerentry: 898*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 3> 899*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %shuffle.i 900*9880d681SAndroid Build Coastguard Worker} 901*9880d681SAndroid Build Coastguard Worker 902*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vtrn2q_s32(<4 x i32> %a, <4 x i32> %b) { 903*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2q_s32: 904*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 905*9880d681SAndroid Build Coastguard Workerentry: 906*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 907*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 908*9880d681SAndroid Build Coastguard Worker} 909*9880d681SAndroid Build Coastguard Worker 910*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vtrn2q_s64(<2 x i64> %a, <2 x i64> %b) { 911*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2q_s64: 912*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 913*9880d681SAndroid Build Coastguard Workerentry: 914*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 1, i32 3> 915*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %shuffle.i 916*9880d681SAndroid Build Coastguard Worker} 917*9880d681SAndroid Build Coastguard Worker 918*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vtrn2_u8(<8 x i8> %a, <8 x i8> %b) { 919*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2_u8: 920*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 921*9880d681SAndroid Build Coastguard Workerentry: 922*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 923*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 924*9880d681SAndroid Build Coastguard Worker} 925*9880d681SAndroid Build Coastguard Worker 926*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vtrn2q_u8(<16 x i8> %a, <16 x i8> %b) { 927*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2q_u8: 928*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 929*9880d681SAndroid Build Coastguard Workerentry: 930*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31> 931*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 932*9880d681SAndroid Build Coastguard Worker} 933*9880d681SAndroid Build Coastguard Worker 934*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vtrn2_u16(<4 x i16> %a, <4 x i16> %b) { 935*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2_u16: 936*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 937*9880d681SAndroid Build Coastguard Workerentry: 938*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 939*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 940*9880d681SAndroid Build Coastguard Worker} 941*9880d681SAndroid Build Coastguard Worker 942*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vtrn2q_u16(<8 x i16> %a, <8 x i16> %b) { 943*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2q_u16: 944*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 945*9880d681SAndroid Build Coastguard Workerentry: 946*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 947*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 948*9880d681SAndroid Build Coastguard Worker} 949*9880d681SAndroid Build Coastguard Worker 950*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_vtrn2_u32(<2 x i32> %a, <2 x i32> %b) { 951*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2_u32: 952*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 953*9880d681SAndroid Build Coastguard Workerentry: 954*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 3> 955*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %shuffle.i 956*9880d681SAndroid Build Coastguard Worker} 957*9880d681SAndroid Build Coastguard Worker 958*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_vtrn2q_u32(<4 x i32> %a, <4 x i32> %b) { 959*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2q_u32: 960*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 961*9880d681SAndroid Build Coastguard Workerentry: 962*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 963*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 964*9880d681SAndroid Build Coastguard Worker} 965*9880d681SAndroid Build Coastguard Worker 966*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vtrn2q_u64(<2 x i64> %a, <2 x i64> %b) { 967*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2q_u64: 968*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 969*9880d681SAndroid Build Coastguard Workerentry: 970*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 1, i32 3> 971*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %shuffle.i 972*9880d681SAndroid Build Coastguard Worker} 973*9880d681SAndroid Build Coastguard Worker 974*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @test_vtrn2_f32(<2 x float> %a, <2 x float> %b) { 975*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2_f32: 976*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 977*9880d681SAndroid Build Coastguard Workerentry: 978*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x float> %a, <2 x float> %b, <2 x i32> <i32 1, i32 3> 979*9880d681SAndroid Build Coastguard Worker ret <2 x float> %shuffle.i 980*9880d681SAndroid Build Coastguard Worker} 981*9880d681SAndroid Build Coastguard Worker 982*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_vtrn2q_f32(<4 x float> %a, <4 x float> %b) { 983*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2q_f32: 984*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 985*9880d681SAndroid Build Coastguard Workerentry: 986*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 987*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 988*9880d681SAndroid Build Coastguard Worker} 989*9880d681SAndroid Build Coastguard Worker 990*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_vtrn2q_f64(<2 x double> %a, <2 x double> %b) { 991*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2q_f64: 992*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 993*9880d681SAndroid Build Coastguard Workerentry: 994*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <2 x double> %a, <2 x double> %b, <2 x i32> <i32 1, i32 3> 995*9880d681SAndroid Build Coastguard Worker ret <2 x double> %shuffle.i 996*9880d681SAndroid Build Coastguard Worker} 997*9880d681SAndroid Build Coastguard Worker 998*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_vtrn2_p8(<8 x i8> %a, <8 x i8> %b) { 999*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2_p8: 1000*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1001*9880d681SAndroid Build Coastguard Workerentry: 1002*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 1003*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1004*9880d681SAndroid Build Coastguard Worker} 1005*9880d681SAndroid Build Coastguard Worker 1006*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_vtrn2q_p8(<16 x i8> %a, <16 x i8> %b) { 1007*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2q_p8: 1008*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1009*9880d681SAndroid Build Coastguard Workerentry: 1010*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31> 1011*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1012*9880d681SAndroid Build Coastguard Worker} 1013*9880d681SAndroid Build Coastguard Worker 1014*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_vtrn2_p16(<4 x i16> %a, <4 x i16> %b) { 1015*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2_p16: 1016*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1017*9880d681SAndroid Build Coastguard Workerentry: 1018*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 1019*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1020*9880d681SAndroid Build Coastguard Worker} 1021*9880d681SAndroid Build Coastguard Worker 1022*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_vtrn2q_p16(<8 x i16> %a, <8 x i16> %b) { 1023*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn2q_p16: 1024*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1025*9880d681SAndroid Build Coastguard Workerentry: 1026*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 1027*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1028*9880d681SAndroid Build Coastguard Worker} 1029*9880d681SAndroid Build Coastguard Worker 1030*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vuzp1_s8(<8 x i8> %a) { 1031*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1_s8: 1032*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1033*9880d681SAndroid Build Coastguard Workerentry: 1034*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 1035*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1036*9880d681SAndroid Build Coastguard Worker} 1037*9880d681SAndroid Build Coastguard Worker 1038*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vuzp1q_s8(<16 x i8> %a) { 1039*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1q_s8: 1040*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1041*9880d681SAndroid Build Coastguard Workerentry: 1042*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30> 1043*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1044*9880d681SAndroid Build Coastguard Worker} 1045*9880d681SAndroid Build Coastguard Worker 1046*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vuzp1_s16(<4 x i16> %a) { 1047*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1_s16: 1048*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1049*9880d681SAndroid Build Coastguard Workerentry: 1050*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 1051*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1052*9880d681SAndroid Build Coastguard Worker} 1053*9880d681SAndroid Build Coastguard Worker 1054*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vuzp1q_s16(<8 x i16> %a) { 1055*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1q_s16: 1056*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1057*9880d681SAndroid Build Coastguard Workerentry: 1058*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 1059*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1060*9880d681SAndroid Build Coastguard Worker} 1061*9880d681SAndroid Build Coastguard Worker 1062*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_same_vuzp1q_s32(<4 x i32> %a) { 1063*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1q_s32: 1064*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1065*9880d681SAndroid Build Coastguard Workerentry: 1066*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %a, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 1067*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1068*9880d681SAndroid Build Coastguard Worker} 1069*9880d681SAndroid Build Coastguard Worker 1070*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vuzp1_u8(<8 x i8> %a) { 1071*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1_u8: 1072*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1073*9880d681SAndroid Build Coastguard Workerentry: 1074*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 1075*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1076*9880d681SAndroid Build Coastguard Worker} 1077*9880d681SAndroid Build Coastguard Worker 1078*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vuzp1q_u8(<16 x i8> %a) { 1079*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1q_u8: 1080*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1081*9880d681SAndroid Build Coastguard Workerentry: 1082*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30> 1083*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1084*9880d681SAndroid Build Coastguard Worker} 1085*9880d681SAndroid Build Coastguard Worker 1086*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vuzp1_u16(<4 x i16> %a) { 1087*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1_u16: 1088*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1089*9880d681SAndroid Build Coastguard Workerentry: 1090*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 1091*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1092*9880d681SAndroid Build Coastguard Worker} 1093*9880d681SAndroid Build Coastguard Worker 1094*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vuzp1q_u16(<8 x i16> %a) { 1095*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1q_u16: 1096*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1097*9880d681SAndroid Build Coastguard Workerentry: 1098*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 1099*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1100*9880d681SAndroid Build Coastguard Worker} 1101*9880d681SAndroid Build Coastguard Worker 1102*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_same_vuzp1q_u32(<4 x i32> %a) { 1103*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1q_u32: 1104*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1105*9880d681SAndroid Build Coastguard Workerentry: 1106*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %a, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 1107*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1108*9880d681SAndroid Build Coastguard Worker} 1109*9880d681SAndroid Build Coastguard Worker 1110*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_same_vuzp1q_f32(<4 x float> %a) { 1111*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1q_f32: 1112*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1113*9880d681SAndroid Build Coastguard Workerentry: 1114*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 1115*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 1116*9880d681SAndroid Build Coastguard Worker} 1117*9880d681SAndroid Build Coastguard Worker 1118*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vuzp1_p8(<8 x i8> %a) { 1119*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1_p8: 1120*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1121*9880d681SAndroid Build Coastguard Workerentry: 1122*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 1123*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1124*9880d681SAndroid Build Coastguard Worker} 1125*9880d681SAndroid Build Coastguard Worker 1126*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vuzp1q_p8(<16 x i8> %a) { 1127*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1q_p8: 1128*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1129*9880d681SAndroid Build Coastguard Workerentry: 1130*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30> 1131*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1132*9880d681SAndroid Build Coastguard Worker} 1133*9880d681SAndroid Build Coastguard Worker 1134*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vuzp1_p16(<4 x i16> %a) { 1135*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1_p16: 1136*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1137*9880d681SAndroid Build Coastguard Workerentry: 1138*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 1139*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1140*9880d681SAndroid Build Coastguard Worker} 1141*9880d681SAndroid Build Coastguard Worker 1142*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vuzp1q_p16(<8 x i16> %a) { 1143*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp1q_p16: 1144*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1145*9880d681SAndroid Build Coastguard Workerentry: 1146*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 1147*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1148*9880d681SAndroid Build Coastguard Worker} 1149*9880d681SAndroid Build Coastguard Worker 1150*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vuzp2_s8(<8 x i8> %a) { 1151*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2_s8: 1152*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1153*9880d681SAndroid Build Coastguard Workerentry: 1154*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 1155*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1156*9880d681SAndroid Build Coastguard Worker} 1157*9880d681SAndroid Build Coastguard Worker 1158*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vuzp2q_s8(<16 x i8> %a) { 1159*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2q_s8: 1160*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1161*9880d681SAndroid Build Coastguard Workerentry: 1162*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31> 1163*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1164*9880d681SAndroid Build Coastguard Worker} 1165*9880d681SAndroid Build Coastguard Worker 1166*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vuzp2_s16(<4 x i16> %a) { 1167*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2_s16: 1168*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1169*9880d681SAndroid Build Coastguard Workerentry: 1170*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 1171*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1172*9880d681SAndroid Build Coastguard Worker} 1173*9880d681SAndroid Build Coastguard Worker 1174*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vuzp2q_s16(<8 x i16> %a) { 1175*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2q_s16: 1176*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1177*9880d681SAndroid Build Coastguard Workerentry: 1178*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 1179*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1180*9880d681SAndroid Build Coastguard Worker} 1181*9880d681SAndroid Build Coastguard Worker 1182*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_same_vuzp2q_s32(<4 x i32> %a) { 1183*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2q_s32: 1184*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1185*9880d681SAndroid Build Coastguard Workerentry: 1186*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %a, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 1187*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1188*9880d681SAndroid Build Coastguard Worker} 1189*9880d681SAndroid Build Coastguard Worker 1190*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vuzp2_u8(<8 x i8> %a) { 1191*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2_u8: 1192*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1193*9880d681SAndroid Build Coastguard Workerentry: 1194*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 1195*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1196*9880d681SAndroid Build Coastguard Worker} 1197*9880d681SAndroid Build Coastguard Worker 1198*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vuzp2q_u8(<16 x i8> %a) { 1199*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2q_u8: 1200*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1201*9880d681SAndroid Build Coastguard Workerentry: 1202*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31> 1203*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1204*9880d681SAndroid Build Coastguard Worker} 1205*9880d681SAndroid Build Coastguard Worker 1206*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vuzp2_u16(<4 x i16> %a) { 1207*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2_u16: 1208*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1209*9880d681SAndroid Build Coastguard Workerentry: 1210*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 1211*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1212*9880d681SAndroid Build Coastguard Worker} 1213*9880d681SAndroid Build Coastguard Worker 1214*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vuzp2q_u16(<8 x i16> %a) { 1215*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2q_u16: 1216*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1217*9880d681SAndroid Build Coastguard Workerentry: 1218*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 1219*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1220*9880d681SAndroid Build Coastguard Worker} 1221*9880d681SAndroid Build Coastguard Worker 1222*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_same_vuzp2q_u32(<4 x i32> %a) { 1223*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2q_u32: 1224*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1225*9880d681SAndroid Build Coastguard Workerentry: 1226*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %a, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 1227*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1228*9880d681SAndroid Build Coastguard Worker} 1229*9880d681SAndroid Build Coastguard Worker 1230*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_same_vuzp2q_f32(<4 x float> %a) { 1231*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2q_f32: 1232*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1233*9880d681SAndroid Build Coastguard Workerentry: 1234*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 1235*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 1236*9880d681SAndroid Build Coastguard Worker} 1237*9880d681SAndroid Build Coastguard Worker 1238*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vuzp2_p8(<8 x i8> %a) { 1239*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2_p8: 1240*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1241*9880d681SAndroid Build Coastguard Workerentry: 1242*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 1243*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1244*9880d681SAndroid Build Coastguard Worker} 1245*9880d681SAndroid Build Coastguard Worker 1246*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vuzp2q_p8(<16 x i8> %a) { 1247*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2q_p8: 1248*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1249*9880d681SAndroid Build Coastguard Workerentry: 1250*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31> 1251*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1252*9880d681SAndroid Build Coastguard Worker} 1253*9880d681SAndroid Build Coastguard Worker 1254*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vuzp2_p16(<4 x i16> %a) { 1255*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2_p16: 1256*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1257*9880d681SAndroid Build Coastguard Workerentry: 1258*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 1259*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1260*9880d681SAndroid Build Coastguard Worker} 1261*9880d681SAndroid Build Coastguard Worker 1262*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vuzp2q_p16(<8 x i16> %a) { 1263*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vuzp2q_p16: 1264*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1265*9880d681SAndroid Build Coastguard Workerentry: 1266*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 1267*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1268*9880d681SAndroid Build Coastguard Worker} 1269*9880d681SAndroid Build Coastguard Worker 1270*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vzip1_s8(<8 x i8> %a) { 1271*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1_s8: 1272*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1273*9880d681SAndroid Build Coastguard Workerentry: 1274*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 1275*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1276*9880d681SAndroid Build Coastguard Worker} 1277*9880d681SAndroid Build Coastguard Worker 1278*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vzip1q_s8(<16 x i8> %a) { 1279*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1q_s8: 1280*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1281*9880d681SAndroid Build Coastguard Workerentry: 1282*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 1283*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1284*9880d681SAndroid Build Coastguard Worker} 1285*9880d681SAndroid Build Coastguard Worker 1286*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vzip1_s16(<4 x i16> %a) { 1287*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1_s16: 1288*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1289*9880d681SAndroid Build Coastguard Workerentry: 1290*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 1291*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1292*9880d681SAndroid Build Coastguard Worker} 1293*9880d681SAndroid Build Coastguard Worker 1294*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vzip1q_s16(<8 x i16> %a) { 1295*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1q_s16: 1296*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1297*9880d681SAndroid Build Coastguard Workerentry: 1298*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 1299*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1300*9880d681SAndroid Build Coastguard Worker} 1301*9880d681SAndroid Build Coastguard Worker 1302*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_same_vzip1q_s32(<4 x i32> %a) { 1303*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1q_s32: 1304*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1305*9880d681SAndroid Build Coastguard Workerentry: 1306*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %a, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 1307*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1308*9880d681SAndroid Build Coastguard Worker} 1309*9880d681SAndroid Build Coastguard Worker 1310*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vzip1_u8(<8 x i8> %a) { 1311*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1_u8: 1312*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1313*9880d681SAndroid Build Coastguard Workerentry: 1314*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 1315*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1316*9880d681SAndroid Build Coastguard Worker} 1317*9880d681SAndroid Build Coastguard Worker 1318*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vzip1q_u8(<16 x i8> %a) { 1319*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1q_u8: 1320*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1321*9880d681SAndroid Build Coastguard Workerentry: 1322*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 1323*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1324*9880d681SAndroid Build Coastguard Worker} 1325*9880d681SAndroid Build Coastguard Worker 1326*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vzip1_u16(<4 x i16> %a) { 1327*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1_u16: 1328*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1329*9880d681SAndroid Build Coastguard Workerentry: 1330*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 1331*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1332*9880d681SAndroid Build Coastguard Worker} 1333*9880d681SAndroid Build Coastguard Worker 1334*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vzip1q_u16(<8 x i16> %a) { 1335*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1q_u16: 1336*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1337*9880d681SAndroid Build Coastguard Workerentry: 1338*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 1339*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1340*9880d681SAndroid Build Coastguard Worker} 1341*9880d681SAndroid Build Coastguard Worker 1342*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_same_vzip1q_u32(<4 x i32> %a) { 1343*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1q_u32: 1344*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1345*9880d681SAndroid Build Coastguard Workerentry: 1346*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %a, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 1347*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1348*9880d681SAndroid Build Coastguard Worker} 1349*9880d681SAndroid Build Coastguard Worker 1350*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_same_vzip1q_f32(<4 x float> %a) { 1351*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1q_f32: 1352*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1353*9880d681SAndroid Build Coastguard Workerentry: 1354*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 1355*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 1356*9880d681SAndroid Build Coastguard Worker} 1357*9880d681SAndroid Build Coastguard Worker 1358*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vzip1_p8(<8 x i8> %a) { 1359*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1_p8: 1360*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1361*9880d681SAndroid Build Coastguard Workerentry: 1362*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 1363*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1364*9880d681SAndroid Build Coastguard Worker} 1365*9880d681SAndroid Build Coastguard Worker 1366*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vzip1q_p8(<16 x i8> %a) { 1367*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1q_p8: 1368*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1369*9880d681SAndroid Build Coastguard Workerentry: 1370*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 1371*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1372*9880d681SAndroid Build Coastguard Worker} 1373*9880d681SAndroid Build Coastguard Worker 1374*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vzip1_p16(<4 x i16> %a) { 1375*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1_p16: 1376*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1377*9880d681SAndroid Build Coastguard Workerentry: 1378*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 1379*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1380*9880d681SAndroid Build Coastguard Worker} 1381*9880d681SAndroid Build Coastguard Worker 1382*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vzip1q_p16(<8 x i16> %a) { 1383*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip1q_p16: 1384*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1385*9880d681SAndroid Build Coastguard Workerentry: 1386*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 1387*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1388*9880d681SAndroid Build Coastguard Worker} 1389*9880d681SAndroid Build Coastguard Worker 1390*9880d681SAndroid Build Coastguard Workerdefine <4 x i8> @test_vzip1_v4i8(<8 x i8> %p) { 1391*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip1_v4i8: 1392*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1393*9880d681SAndroid Build Coastguard Worker %lo = shufflevector <8 x i8> %p, <8 x i8> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3> 1394*9880d681SAndroid Build Coastguard Worker ret <4 x i8> %lo 1395*9880d681SAndroid Build Coastguard Worker} 1396*9880d681SAndroid Build Coastguard Worker 1397*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vzip2_s8(<8 x i8> %a) { 1398*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2_s8: 1399*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1400*9880d681SAndroid Build Coastguard Workerentry: 1401*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 1402*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1403*9880d681SAndroid Build Coastguard Worker} 1404*9880d681SAndroid Build Coastguard Worker 1405*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vzip2q_s8(<16 x i8> %a) { 1406*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2q_s8: 1407*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1408*9880d681SAndroid Build Coastguard Workerentry: 1409*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31> 1410*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1411*9880d681SAndroid Build Coastguard Worker} 1412*9880d681SAndroid Build Coastguard Worker 1413*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vzip2_s16(<4 x i16> %a) { 1414*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2_s16: 1415*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1416*9880d681SAndroid Build Coastguard Workerentry: 1417*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 1418*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1419*9880d681SAndroid Build Coastguard Worker} 1420*9880d681SAndroid Build Coastguard Worker 1421*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vzip2q_s16(<8 x i16> %a) { 1422*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2q_s16: 1423*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1424*9880d681SAndroid Build Coastguard Workerentry: 1425*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 1426*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1427*9880d681SAndroid Build Coastguard Worker} 1428*9880d681SAndroid Build Coastguard Worker 1429*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_same_vzip2q_s32(<4 x i32> %a) { 1430*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2q_s32: 1431*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1432*9880d681SAndroid Build Coastguard Workerentry: 1433*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %a, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 1434*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1435*9880d681SAndroid Build Coastguard Worker} 1436*9880d681SAndroid Build Coastguard Worker 1437*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vzip2_u8(<8 x i8> %a) { 1438*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2_u8: 1439*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1440*9880d681SAndroid Build Coastguard Workerentry: 1441*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 1442*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1443*9880d681SAndroid Build Coastguard Worker} 1444*9880d681SAndroid Build Coastguard Worker 1445*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vzip2q_u8(<16 x i8> %a) { 1446*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2q_u8: 1447*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1448*9880d681SAndroid Build Coastguard Workerentry: 1449*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31> 1450*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1451*9880d681SAndroid Build Coastguard Worker} 1452*9880d681SAndroid Build Coastguard Worker 1453*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vzip2_u16(<4 x i16> %a) { 1454*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2_u16: 1455*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1456*9880d681SAndroid Build Coastguard Workerentry: 1457*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 1458*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1459*9880d681SAndroid Build Coastguard Worker} 1460*9880d681SAndroid Build Coastguard Worker 1461*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vzip2q_u16(<8 x i16> %a) { 1462*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2q_u16: 1463*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1464*9880d681SAndroid Build Coastguard Workerentry: 1465*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 1466*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1467*9880d681SAndroid Build Coastguard Worker} 1468*9880d681SAndroid Build Coastguard Worker 1469*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_same_vzip2q_u32(<4 x i32> %a) { 1470*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2q_u32: 1471*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1472*9880d681SAndroid Build Coastguard Workerentry: 1473*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %a, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 1474*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1475*9880d681SAndroid Build Coastguard Worker} 1476*9880d681SAndroid Build Coastguard Worker 1477*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_same_vzip2q_f32(<4 x float> %a) { 1478*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2q_f32: 1479*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1480*9880d681SAndroid Build Coastguard Workerentry: 1481*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 1482*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 1483*9880d681SAndroid Build Coastguard Worker} 1484*9880d681SAndroid Build Coastguard Worker 1485*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vzip2_p8(<8 x i8> %a) { 1486*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2_p8: 1487*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1488*9880d681SAndroid Build Coastguard Workerentry: 1489*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 1490*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1491*9880d681SAndroid Build Coastguard Worker} 1492*9880d681SAndroid Build Coastguard Worker 1493*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vzip2q_p8(<16 x i8> %a) { 1494*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2q_p8: 1495*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1496*9880d681SAndroid Build Coastguard Workerentry: 1497*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31> 1498*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1499*9880d681SAndroid Build Coastguard Worker} 1500*9880d681SAndroid Build Coastguard Worker 1501*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vzip2_p16(<4 x i16> %a) { 1502*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2_p16: 1503*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1504*9880d681SAndroid Build Coastguard Workerentry: 1505*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 1506*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1507*9880d681SAndroid Build Coastguard Worker} 1508*9880d681SAndroid Build Coastguard Worker 1509*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vzip2q_p16(<8 x i16> %a) { 1510*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vzip2q_p16: 1511*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1512*9880d681SAndroid Build Coastguard Workerentry: 1513*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 1514*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1515*9880d681SAndroid Build Coastguard Worker} 1516*9880d681SAndroid Build Coastguard Worker 1517*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vtrn1_s8(<8 x i8> %a) { 1518*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1_s8: 1519*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1520*9880d681SAndroid Build Coastguard Workerentry: 1521*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 1522*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1523*9880d681SAndroid Build Coastguard Worker} 1524*9880d681SAndroid Build Coastguard Worker 1525*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vtrn1q_s8(<16 x i8> %a) { 1526*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1q_s8: 1527*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1528*9880d681SAndroid Build Coastguard Workerentry: 1529*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30> 1530*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1531*9880d681SAndroid Build Coastguard Worker} 1532*9880d681SAndroid Build Coastguard Worker 1533*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vtrn1_s16(<4 x i16> %a) { 1534*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1_s16: 1535*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1536*9880d681SAndroid Build Coastguard Workerentry: 1537*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 1538*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1539*9880d681SAndroid Build Coastguard Worker} 1540*9880d681SAndroid Build Coastguard Worker 1541*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vtrn1q_s16(<8 x i16> %a) { 1542*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1q_s16: 1543*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1544*9880d681SAndroid Build Coastguard Workerentry: 1545*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 1546*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1547*9880d681SAndroid Build Coastguard Worker} 1548*9880d681SAndroid Build Coastguard Worker 1549*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_same_vtrn1q_s32(<4 x i32> %a) { 1550*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1q_s32: 1551*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1552*9880d681SAndroid Build Coastguard Workerentry: 1553*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %a, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 1554*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1555*9880d681SAndroid Build Coastguard Worker} 1556*9880d681SAndroid Build Coastguard Worker 1557*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vtrn1_u8(<8 x i8> %a) { 1558*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1_u8: 1559*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1560*9880d681SAndroid Build Coastguard Workerentry: 1561*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 1562*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1563*9880d681SAndroid Build Coastguard Worker} 1564*9880d681SAndroid Build Coastguard Worker 1565*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vtrn1q_u8(<16 x i8> %a) { 1566*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1q_u8: 1567*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1568*9880d681SAndroid Build Coastguard Workerentry: 1569*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30> 1570*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1571*9880d681SAndroid Build Coastguard Worker} 1572*9880d681SAndroid Build Coastguard Worker 1573*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vtrn1_u16(<4 x i16> %a) { 1574*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1_u16: 1575*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1576*9880d681SAndroid Build Coastguard Workerentry: 1577*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 1578*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1579*9880d681SAndroid Build Coastguard Worker} 1580*9880d681SAndroid Build Coastguard Worker 1581*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vtrn1q_u16(<8 x i16> %a) { 1582*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1q_u16: 1583*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1584*9880d681SAndroid Build Coastguard Workerentry: 1585*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 1586*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1587*9880d681SAndroid Build Coastguard Worker} 1588*9880d681SAndroid Build Coastguard Worker 1589*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_same_vtrn1q_u32(<4 x i32> %a) { 1590*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1q_u32: 1591*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1592*9880d681SAndroid Build Coastguard Workerentry: 1593*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %a, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 1594*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1595*9880d681SAndroid Build Coastguard Worker} 1596*9880d681SAndroid Build Coastguard Worker 1597*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_same_vtrn1q_f32(<4 x float> %a) { 1598*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1q_f32: 1599*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1600*9880d681SAndroid Build Coastguard Workerentry: 1601*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 1602*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 1603*9880d681SAndroid Build Coastguard Worker} 1604*9880d681SAndroid Build Coastguard Worker 1605*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vtrn1_p8(<8 x i8> %a) { 1606*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1_p8: 1607*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1608*9880d681SAndroid Build Coastguard Workerentry: 1609*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 1610*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1611*9880d681SAndroid Build Coastguard Worker} 1612*9880d681SAndroid Build Coastguard Worker 1613*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vtrn1q_p8(<16 x i8> %a) { 1614*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1q_p8: 1615*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1616*9880d681SAndroid Build Coastguard Workerentry: 1617*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30> 1618*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1619*9880d681SAndroid Build Coastguard Worker} 1620*9880d681SAndroid Build Coastguard Worker 1621*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vtrn1_p16(<4 x i16> %a) { 1622*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1_p16: 1623*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1624*9880d681SAndroid Build Coastguard Workerentry: 1625*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 1626*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1627*9880d681SAndroid Build Coastguard Worker} 1628*9880d681SAndroid Build Coastguard Worker 1629*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vtrn1q_p16(<8 x i16> %a) { 1630*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn1q_p16: 1631*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1632*9880d681SAndroid Build Coastguard Workerentry: 1633*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 1634*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1635*9880d681SAndroid Build Coastguard Worker} 1636*9880d681SAndroid Build Coastguard Worker 1637*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vtrn2_s8(<8 x i8> %a) { 1638*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2_s8: 1639*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1640*9880d681SAndroid Build Coastguard Workerentry: 1641*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 1642*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1643*9880d681SAndroid Build Coastguard Worker} 1644*9880d681SAndroid Build Coastguard Worker 1645*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vtrn2q_s8(<16 x i8> %a) { 1646*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2q_s8: 1647*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1648*9880d681SAndroid Build Coastguard Workerentry: 1649*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31> 1650*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1651*9880d681SAndroid Build Coastguard Worker} 1652*9880d681SAndroid Build Coastguard Worker 1653*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vtrn2_s16(<4 x i16> %a) { 1654*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2_s16: 1655*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1656*9880d681SAndroid Build Coastguard Workerentry: 1657*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 1658*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1659*9880d681SAndroid Build Coastguard Worker} 1660*9880d681SAndroid Build Coastguard Worker 1661*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vtrn2q_s16(<8 x i16> %a) { 1662*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2q_s16: 1663*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1664*9880d681SAndroid Build Coastguard Workerentry: 1665*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 1666*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1667*9880d681SAndroid Build Coastguard Worker} 1668*9880d681SAndroid Build Coastguard Worker 1669*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_same_vtrn2q_s32(<4 x i32> %a) { 1670*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2q_s32: 1671*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1672*9880d681SAndroid Build Coastguard Workerentry: 1673*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %a, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 1674*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1675*9880d681SAndroid Build Coastguard Worker} 1676*9880d681SAndroid Build Coastguard Worker 1677*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vtrn2_u8(<8 x i8> %a) { 1678*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2_u8: 1679*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1680*9880d681SAndroid Build Coastguard Workerentry: 1681*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 1682*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1683*9880d681SAndroid Build Coastguard Worker} 1684*9880d681SAndroid Build Coastguard Worker 1685*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vtrn2q_u8(<16 x i8> %a) { 1686*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2q_u8: 1687*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1688*9880d681SAndroid Build Coastguard Workerentry: 1689*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31> 1690*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1691*9880d681SAndroid Build Coastguard Worker} 1692*9880d681SAndroid Build Coastguard Worker 1693*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vtrn2_u16(<4 x i16> %a) { 1694*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2_u16: 1695*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1696*9880d681SAndroid Build Coastguard Workerentry: 1697*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 1698*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1699*9880d681SAndroid Build Coastguard Worker} 1700*9880d681SAndroid Build Coastguard Worker 1701*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vtrn2q_u16(<8 x i16> %a) { 1702*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2q_u16: 1703*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1704*9880d681SAndroid Build Coastguard Workerentry: 1705*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 1706*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1707*9880d681SAndroid Build Coastguard Worker} 1708*9880d681SAndroid Build Coastguard Worker 1709*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_same_vtrn2q_u32(<4 x i32> %a) { 1710*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2q_u32: 1711*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1712*9880d681SAndroid Build Coastguard Workerentry: 1713*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> %a, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 1714*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1715*9880d681SAndroid Build Coastguard Worker} 1716*9880d681SAndroid Build Coastguard Worker 1717*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_same_vtrn2q_f32(<4 x float> %a) { 1718*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2q_f32: 1719*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1720*9880d681SAndroid Build Coastguard Workerentry: 1721*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 1722*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 1723*9880d681SAndroid Build Coastguard Worker} 1724*9880d681SAndroid Build Coastguard Worker 1725*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_same_vtrn2_p8(<8 x i8> %a) { 1726*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2_p8: 1727*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1728*9880d681SAndroid Build Coastguard Workerentry: 1729*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> %a, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 1730*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1731*9880d681SAndroid Build Coastguard Worker} 1732*9880d681SAndroid Build Coastguard Worker 1733*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_same_vtrn2q_p8(<16 x i8> %a) { 1734*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2q_p8: 1735*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1736*9880d681SAndroid Build Coastguard Workerentry: 1737*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> %a, <16 x i32> <i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31> 1738*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1739*9880d681SAndroid Build Coastguard Worker} 1740*9880d681SAndroid Build Coastguard Worker 1741*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_same_vtrn2_p16(<4 x i16> %a) { 1742*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2_p16: 1743*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1744*9880d681SAndroid Build Coastguard Workerentry: 1745*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> %a, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 1746*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1747*9880d681SAndroid Build Coastguard Worker} 1748*9880d681SAndroid Build Coastguard Worker 1749*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_same_vtrn2q_p16(<8 x i16> %a) { 1750*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_same_vtrn2q_p16: 1751*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1752*9880d681SAndroid Build Coastguard Workerentry: 1753*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> %a, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 1754*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1755*9880d681SAndroid Build Coastguard Worker} 1756*9880d681SAndroid Build Coastguard Worker 1757*9880d681SAndroid Build Coastguard Worker 1758*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vuzp1_s8(<8 x i8> %a) { 1759*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1_s8: 1760*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1761*9880d681SAndroid Build Coastguard Workerentry: 1762*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 1763*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1764*9880d681SAndroid Build Coastguard Worker} 1765*9880d681SAndroid Build Coastguard Worker 1766*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vuzp1q_s8(<16 x i8> %a) { 1767*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1q_s8: 1768*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1769*9880d681SAndroid Build Coastguard Workerentry: 1770*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30> 1771*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1772*9880d681SAndroid Build Coastguard Worker} 1773*9880d681SAndroid Build Coastguard Worker 1774*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vuzp1_s16(<4 x i16> %a) { 1775*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1_s16: 1776*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1777*9880d681SAndroid Build Coastguard Workerentry: 1778*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 1779*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1780*9880d681SAndroid Build Coastguard Worker} 1781*9880d681SAndroid Build Coastguard Worker 1782*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vuzp1q_s16(<8 x i16> %a) { 1783*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1q_s16: 1784*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1785*9880d681SAndroid Build Coastguard Workerentry: 1786*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 1787*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1788*9880d681SAndroid Build Coastguard Worker} 1789*9880d681SAndroid Build Coastguard Worker 1790*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_undef_vuzp1q_s32(<4 x i32> %a) { 1791*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1q_s32: 1792*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1793*9880d681SAndroid Build Coastguard Workerentry: 1794*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 1795*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1796*9880d681SAndroid Build Coastguard Worker} 1797*9880d681SAndroid Build Coastguard Worker 1798*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vuzp1_u8(<8 x i8> %a) { 1799*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1_u8: 1800*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1801*9880d681SAndroid Build Coastguard Workerentry: 1802*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 1803*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1804*9880d681SAndroid Build Coastguard Worker} 1805*9880d681SAndroid Build Coastguard Worker 1806*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vuzp1q_u8(<16 x i8> %a) { 1807*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1q_u8: 1808*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1809*9880d681SAndroid Build Coastguard Workerentry: 1810*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30> 1811*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1812*9880d681SAndroid Build Coastguard Worker} 1813*9880d681SAndroid Build Coastguard Worker 1814*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vuzp1_u16(<4 x i16> %a) { 1815*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1_u16: 1816*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1817*9880d681SAndroid Build Coastguard Workerentry: 1818*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 1819*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1820*9880d681SAndroid Build Coastguard Worker} 1821*9880d681SAndroid Build Coastguard Worker 1822*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vuzp1q_u16(<8 x i16> %a) { 1823*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1q_u16: 1824*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1825*9880d681SAndroid Build Coastguard Workerentry: 1826*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 1827*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1828*9880d681SAndroid Build Coastguard Worker} 1829*9880d681SAndroid Build Coastguard Worker 1830*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_undef_vuzp1q_u32(<4 x i32> %a) { 1831*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1q_u32: 1832*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1833*9880d681SAndroid Build Coastguard Workerentry: 1834*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 1835*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1836*9880d681SAndroid Build Coastguard Worker} 1837*9880d681SAndroid Build Coastguard Worker 1838*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_undef_vuzp1q_f32(<4 x float> %a) { 1839*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1q_f32: 1840*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1841*9880d681SAndroid Build Coastguard Workerentry: 1842*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 1843*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 1844*9880d681SAndroid Build Coastguard Worker} 1845*9880d681SAndroid Build Coastguard Worker 1846*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vuzp1_p8(<8 x i8> %a) { 1847*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1_p8: 1848*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1849*9880d681SAndroid Build Coastguard Workerentry: 1850*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 1851*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1852*9880d681SAndroid Build Coastguard Worker} 1853*9880d681SAndroid Build Coastguard Worker 1854*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vuzp1q_p8(<16 x i8> %a) { 1855*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1q_p8: 1856*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1857*9880d681SAndroid Build Coastguard Workerentry: 1858*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30> 1859*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1860*9880d681SAndroid Build Coastguard Worker} 1861*9880d681SAndroid Build Coastguard Worker 1862*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vuzp1_p16(<4 x i16> %a) { 1863*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1_p16: 1864*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1865*9880d681SAndroid Build Coastguard Workerentry: 1866*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 1867*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1868*9880d681SAndroid Build Coastguard Worker} 1869*9880d681SAndroid Build Coastguard Worker 1870*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vuzp1q_p16(<8 x i16> %a) { 1871*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp1q_p16: 1872*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1873*9880d681SAndroid Build Coastguard Workerentry: 1874*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 1875*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1876*9880d681SAndroid Build Coastguard Worker} 1877*9880d681SAndroid Build Coastguard Worker 1878*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vuzp2_s8(<8 x i8> %a) { 1879*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2_s8: 1880*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1881*9880d681SAndroid Build Coastguard Workerentry: 1882*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 1883*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1884*9880d681SAndroid Build Coastguard Worker} 1885*9880d681SAndroid Build Coastguard Worker 1886*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vuzp2q_s8(<16 x i8> %a) { 1887*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2q_s8: 1888*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1889*9880d681SAndroid Build Coastguard Workerentry: 1890*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31> 1891*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1892*9880d681SAndroid Build Coastguard Worker} 1893*9880d681SAndroid Build Coastguard Worker 1894*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vuzp2_s16(<4 x i16> %a) { 1895*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2_s16: 1896*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1897*9880d681SAndroid Build Coastguard Workerentry: 1898*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 1899*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1900*9880d681SAndroid Build Coastguard Worker} 1901*9880d681SAndroid Build Coastguard Worker 1902*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vuzp2q_s16(<8 x i16> %a) { 1903*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2q_s16: 1904*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1905*9880d681SAndroid Build Coastguard Workerentry: 1906*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 1907*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1908*9880d681SAndroid Build Coastguard Worker} 1909*9880d681SAndroid Build Coastguard Worker 1910*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_undef_vuzp2q_s32(<4 x i32> %a) { 1911*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2q_s32: 1912*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1913*9880d681SAndroid Build Coastguard Workerentry: 1914*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 1915*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1916*9880d681SAndroid Build Coastguard Worker} 1917*9880d681SAndroid Build Coastguard Worker 1918*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vuzp2_u8(<8 x i8> %a) { 1919*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2_u8: 1920*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1921*9880d681SAndroid Build Coastguard Workerentry: 1922*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 1923*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1924*9880d681SAndroid Build Coastguard Worker} 1925*9880d681SAndroid Build Coastguard Worker 1926*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vuzp2q_u8(<16 x i8> %a) { 1927*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2q_u8: 1928*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1929*9880d681SAndroid Build Coastguard Workerentry: 1930*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31> 1931*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1932*9880d681SAndroid Build Coastguard Worker} 1933*9880d681SAndroid Build Coastguard Worker 1934*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vuzp2_u16(<4 x i16> %a) { 1935*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2_u16: 1936*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1937*9880d681SAndroid Build Coastguard Workerentry: 1938*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 1939*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1940*9880d681SAndroid Build Coastguard Worker} 1941*9880d681SAndroid Build Coastguard Worker 1942*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vuzp2q_u16(<8 x i16> %a) { 1943*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2q_u16: 1944*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1945*9880d681SAndroid Build Coastguard Workerentry: 1946*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 1947*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1948*9880d681SAndroid Build Coastguard Worker} 1949*9880d681SAndroid Build Coastguard Worker 1950*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_undef_vuzp2q_u32(<4 x i32> %a) { 1951*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2q_u32: 1952*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1953*9880d681SAndroid Build Coastguard Workerentry: 1954*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 1955*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 1956*9880d681SAndroid Build Coastguard Worker} 1957*9880d681SAndroid Build Coastguard Worker 1958*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_undef_vuzp2q_f32(<4 x float> %a) { 1959*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2q_f32: 1960*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1961*9880d681SAndroid Build Coastguard Workerentry: 1962*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> undef, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 1963*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 1964*9880d681SAndroid Build Coastguard Worker} 1965*9880d681SAndroid Build Coastguard Worker 1966*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vuzp2_p8(<8 x i8> %a) { 1967*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2_p8: 1968*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1969*9880d681SAndroid Build Coastguard Workerentry: 1970*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 1971*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 1972*9880d681SAndroid Build Coastguard Worker} 1973*9880d681SAndroid Build Coastguard Worker 1974*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vuzp2q_p8(<16 x i8> %a) { 1975*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2q_p8: 1976*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1977*9880d681SAndroid Build Coastguard Workerentry: 1978*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31> 1979*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 1980*9880d681SAndroid Build Coastguard Worker} 1981*9880d681SAndroid Build Coastguard Worker 1982*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vuzp2_p16(<4 x i16> %a) { 1983*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2_p16: 1984*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1985*9880d681SAndroid Build Coastguard Workerentry: 1986*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 1987*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 1988*9880d681SAndroid Build Coastguard Worker} 1989*9880d681SAndroid Build Coastguard Worker 1990*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vuzp2q_p16(<8 x i16> %a) { 1991*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vuzp2q_p16: 1992*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1993*9880d681SAndroid Build Coastguard Workerentry: 1994*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 1995*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 1996*9880d681SAndroid Build Coastguard Worker} 1997*9880d681SAndroid Build Coastguard Worker 1998*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vzip1_s8(<8 x i8> %a) { 1999*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1_s8: 2000*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2001*9880d681SAndroid Build Coastguard Workerentry: 2002*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 2003*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 2004*9880d681SAndroid Build Coastguard Worker} 2005*9880d681SAndroid Build Coastguard Worker 2006*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vzip1q_s8(<16 x i8> %a) { 2007*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1q_s8: 2008*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2009*9880d681SAndroid Build Coastguard Workerentry: 2010*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 2011*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 2012*9880d681SAndroid Build Coastguard Worker} 2013*9880d681SAndroid Build Coastguard Worker 2014*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vzip1_s16(<4 x i16> %a) { 2015*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1_s16: 2016*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2017*9880d681SAndroid Build Coastguard Workerentry: 2018*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 2019*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 2020*9880d681SAndroid Build Coastguard Worker} 2021*9880d681SAndroid Build Coastguard Worker 2022*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vzip1q_s16(<8 x i16> %a) { 2023*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1q_s16: 2024*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2025*9880d681SAndroid Build Coastguard Workerentry: 2026*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 2027*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 2028*9880d681SAndroid Build Coastguard Worker} 2029*9880d681SAndroid Build Coastguard Worker 2030*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_undef_vzip1q_s32(<4 x i32> %a) { 2031*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1q_s32: 2032*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2033*9880d681SAndroid Build Coastguard Workerentry: 2034*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 2035*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 2036*9880d681SAndroid Build Coastguard Worker} 2037*9880d681SAndroid Build Coastguard Worker 2038*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vzip1_u8(<8 x i8> %a) { 2039*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1_u8: 2040*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2041*9880d681SAndroid Build Coastguard Workerentry: 2042*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 2043*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 2044*9880d681SAndroid Build Coastguard Worker} 2045*9880d681SAndroid Build Coastguard Worker 2046*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vzip1q_u8(<16 x i8> %a) { 2047*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1q_u8: 2048*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2049*9880d681SAndroid Build Coastguard Workerentry: 2050*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 2051*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 2052*9880d681SAndroid Build Coastguard Worker} 2053*9880d681SAndroid Build Coastguard Worker 2054*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vzip1_u16(<4 x i16> %a) { 2055*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1_u16: 2056*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2057*9880d681SAndroid Build Coastguard Workerentry: 2058*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 2059*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 2060*9880d681SAndroid Build Coastguard Worker} 2061*9880d681SAndroid Build Coastguard Worker 2062*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vzip1q_u16(<8 x i16> %a) { 2063*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1q_u16: 2064*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2065*9880d681SAndroid Build Coastguard Workerentry: 2066*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 2067*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 2068*9880d681SAndroid Build Coastguard Worker} 2069*9880d681SAndroid Build Coastguard Worker 2070*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_undef_vzip1q_u32(<4 x i32> %a) { 2071*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1q_u32: 2072*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2073*9880d681SAndroid Build Coastguard Workerentry: 2074*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 2075*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 2076*9880d681SAndroid Build Coastguard Worker} 2077*9880d681SAndroid Build Coastguard Worker 2078*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_undef_vzip1q_f32(<4 x float> %a) { 2079*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1q_f32: 2080*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2081*9880d681SAndroid Build Coastguard Workerentry: 2082*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> undef, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 2083*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 2084*9880d681SAndroid Build Coastguard Worker} 2085*9880d681SAndroid Build Coastguard Worker 2086*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vzip1_p8(<8 x i8> %a) { 2087*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1_p8: 2088*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2089*9880d681SAndroid Build Coastguard Workerentry: 2090*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 2091*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 2092*9880d681SAndroid Build Coastguard Worker} 2093*9880d681SAndroid Build Coastguard Worker 2094*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vzip1q_p8(<16 x i8> %a) { 2095*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1q_p8: 2096*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2097*9880d681SAndroid Build Coastguard Workerentry: 2098*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 2099*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 2100*9880d681SAndroid Build Coastguard Worker} 2101*9880d681SAndroid Build Coastguard Worker 2102*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vzip1_p16(<4 x i16> %a) { 2103*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1_p16: 2104*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2105*9880d681SAndroid Build Coastguard Workerentry: 2106*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 2107*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 2108*9880d681SAndroid Build Coastguard Worker} 2109*9880d681SAndroid Build Coastguard Worker 2110*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vzip1q_p16(<8 x i16> %a) { 2111*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip1q_p16: 2112*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2113*9880d681SAndroid Build Coastguard Workerentry: 2114*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 2115*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 2116*9880d681SAndroid Build Coastguard Worker} 2117*9880d681SAndroid Build Coastguard Worker 2118*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vzip2_s8(<8 x i8> %a) { 2119*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2_s8: 2120*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2121*9880d681SAndroid Build Coastguard Workerentry: 2122*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 2123*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 2124*9880d681SAndroid Build Coastguard Worker} 2125*9880d681SAndroid Build Coastguard Worker 2126*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vzip2q_s8(<16 x i8> %a) { 2127*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2q_s8: 2128*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2129*9880d681SAndroid Build Coastguard Workerentry: 2130*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31> 2131*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 2132*9880d681SAndroid Build Coastguard Worker} 2133*9880d681SAndroid Build Coastguard Worker 2134*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vzip2_s16(<4 x i16> %a) { 2135*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2_s16: 2136*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2137*9880d681SAndroid Build Coastguard Workerentry: 2138*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 2139*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 2140*9880d681SAndroid Build Coastguard Worker} 2141*9880d681SAndroid Build Coastguard Worker 2142*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vzip2q_s16(<8 x i16> %a) { 2143*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2q_s16: 2144*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2145*9880d681SAndroid Build Coastguard Workerentry: 2146*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 2147*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 2148*9880d681SAndroid Build Coastguard Worker} 2149*9880d681SAndroid Build Coastguard Worker 2150*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_undef_vzip2q_s32(<4 x i32> %a) { 2151*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2q_s32: 2152*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2153*9880d681SAndroid Build Coastguard Workerentry: 2154*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 2155*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 2156*9880d681SAndroid Build Coastguard Worker} 2157*9880d681SAndroid Build Coastguard Worker 2158*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vzip2_u8(<8 x i8> %a) { 2159*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2_u8: 2160*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2161*9880d681SAndroid Build Coastguard Workerentry: 2162*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 2163*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 2164*9880d681SAndroid Build Coastguard Worker} 2165*9880d681SAndroid Build Coastguard Worker 2166*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vzip2q_u8(<16 x i8> %a) { 2167*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2q_u8: 2168*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2169*9880d681SAndroid Build Coastguard Workerentry: 2170*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31> 2171*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 2172*9880d681SAndroid Build Coastguard Worker} 2173*9880d681SAndroid Build Coastguard Worker 2174*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vzip2_u16(<4 x i16> %a) { 2175*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2_u16: 2176*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2177*9880d681SAndroid Build Coastguard Workerentry: 2178*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 2179*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 2180*9880d681SAndroid Build Coastguard Worker} 2181*9880d681SAndroid Build Coastguard Worker 2182*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vzip2q_u16(<8 x i16> %a) { 2183*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2q_u16: 2184*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2185*9880d681SAndroid Build Coastguard Workerentry: 2186*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 2187*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 2188*9880d681SAndroid Build Coastguard Worker} 2189*9880d681SAndroid Build Coastguard Worker 2190*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_undef_vzip2q_u32(<4 x i32> %a) { 2191*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2q_u32: 2192*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2193*9880d681SAndroid Build Coastguard Workerentry: 2194*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 2195*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 2196*9880d681SAndroid Build Coastguard Worker} 2197*9880d681SAndroid Build Coastguard Worker 2198*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_undef_vzip2q_f32(<4 x float> %a) { 2199*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2q_f32: 2200*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2201*9880d681SAndroid Build Coastguard Workerentry: 2202*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> undef, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 2203*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 2204*9880d681SAndroid Build Coastguard Worker} 2205*9880d681SAndroid Build Coastguard Worker 2206*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vzip2_p8(<8 x i8> %a) { 2207*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2_p8: 2208*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2209*9880d681SAndroid Build Coastguard Workerentry: 2210*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 2211*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 2212*9880d681SAndroid Build Coastguard Worker} 2213*9880d681SAndroid Build Coastguard Worker 2214*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vzip2q_p8(<16 x i8> %a) { 2215*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2q_p8: 2216*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2217*9880d681SAndroid Build Coastguard Workerentry: 2218*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31> 2219*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 2220*9880d681SAndroid Build Coastguard Worker} 2221*9880d681SAndroid Build Coastguard Worker 2222*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vzip2_p16(<4 x i16> %a) { 2223*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2_p16: 2224*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2225*9880d681SAndroid Build Coastguard Workerentry: 2226*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 2227*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 2228*9880d681SAndroid Build Coastguard Worker} 2229*9880d681SAndroid Build Coastguard Worker 2230*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vzip2q_p16(<8 x i16> %a) { 2231*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vzip2q_p16: 2232*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2233*9880d681SAndroid Build Coastguard Workerentry: 2234*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 2235*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 2236*9880d681SAndroid Build Coastguard Worker} 2237*9880d681SAndroid Build Coastguard Worker 2238*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vtrn1_s8(<8 x i8> %a) { 2239*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1_s8: 2240*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2241*9880d681SAndroid Build Coastguard Workerentry: 2242*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 2243*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 2244*9880d681SAndroid Build Coastguard Worker} 2245*9880d681SAndroid Build Coastguard Worker 2246*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vtrn1q_s8(<16 x i8> %a) { 2247*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1q_s8: 2248*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2249*9880d681SAndroid Build Coastguard Workerentry: 2250*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30> 2251*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 2252*9880d681SAndroid Build Coastguard Worker} 2253*9880d681SAndroid Build Coastguard Worker 2254*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vtrn1_s16(<4 x i16> %a) { 2255*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1_s16: 2256*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2257*9880d681SAndroid Build Coastguard Workerentry: 2258*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 2259*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 2260*9880d681SAndroid Build Coastguard Worker} 2261*9880d681SAndroid Build Coastguard Worker 2262*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vtrn1q_s16(<8 x i16> %a) { 2263*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1q_s16: 2264*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2265*9880d681SAndroid Build Coastguard Workerentry: 2266*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 2267*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 2268*9880d681SAndroid Build Coastguard Worker} 2269*9880d681SAndroid Build Coastguard Worker 2270*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_undef_vtrn1q_s32(<4 x i32> %a) { 2271*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1q_s32: 2272*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2273*9880d681SAndroid Build Coastguard Workerentry: 2274*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 2275*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 2276*9880d681SAndroid Build Coastguard Worker} 2277*9880d681SAndroid Build Coastguard Worker 2278*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vtrn1_u8(<8 x i8> %a) { 2279*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1_u8: 2280*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2281*9880d681SAndroid Build Coastguard Workerentry: 2282*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 2283*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 2284*9880d681SAndroid Build Coastguard Worker} 2285*9880d681SAndroid Build Coastguard Worker 2286*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vtrn1q_u8(<16 x i8> %a) { 2287*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1q_u8: 2288*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2289*9880d681SAndroid Build Coastguard Workerentry: 2290*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30> 2291*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 2292*9880d681SAndroid Build Coastguard Worker} 2293*9880d681SAndroid Build Coastguard Worker 2294*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vtrn1_u16(<4 x i16> %a) { 2295*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1_u16: 2296*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2297*9880d681SAndroid Build Coastguard Workerentry: 2298*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 2299*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 2300*9880d681SAndroid Build Coastguard Worker} 2301*9880d681SAndroid Build Coastguard Worker 2302*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vtrn1q_u16(<8 x i16> %a) { 2303*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1q_u16: 2304*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2305*9880d681SAndroid Build Coastguard Workerentry: 2306*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 2307*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 2308*9880d681SAndroid Build Coastguard Worker} 2309*9880d681SAndroid Build Coastguard Worker 2310*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_undef_vtrn1q_u32(<4 x i32> %a) { 2311*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1q_u32: 2312*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2313*9880d681SAndroid Build Coastguard Workerentry: 2314*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 2315*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 2316*9880d681SAndroid Build Coastguard Worker} 2317*9880d681SAndroid Build Coastguard Worker 2318*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_undef_vtrn1q_f32(<4 x float> %a) { 2319*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1q_f32: 2320*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2321*9880d681SAndroid Build Coastguard Workerentry: 2322*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> undef, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 2323*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 2324*9880d681SAndroid Build Coastguard Worker} 2325*9880d681SAndroid Build Coastguard Worker 2326*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vtrn1_p8(<8 x i8> %a) { 2327*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1_p8: 2328*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2329*9880d681SAndroid Build Coastguard Workerentry: 2330*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 2331*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 2332*9880d681SAndroid Build Coastguard Worker} 2333*9880d681SAndroid Build Coastguard Worker 2334*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vtrn1q_p8(<16 x i8> %a) { 2335*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1q_p8: 2336*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2337*9880d681SAndroid Build Coastguard Workerentry: 2338*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30> 2339*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 2340*9880d681SAndroid Build Coastguard Worker} 2341*9880d681SAndroid Build Coastguard Worker 2342*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vtrn1_p16(<4 x i16> %a) { 2343*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1_p16: 2344*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2345*9880d681SAndroid Build Coastguard Workerentry: 2346*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 2347*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 2348*9880d681SAndroid Build Coastguard Worker} 2349*9880d681SAndroid Build Coastguard Worker 2350*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vtrn1q_p16(<8 x i16> %a) { 2351*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn1q_p16: 2352*9880d681SAndroid Build Coastguard Worker; CHECK: ret 2353*9880d681SAndroid Build Coastguard Workerentry: 2354*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 2355*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 2356*9880d681SAndroid Build Coastguard Worker} 2357*9880d681SAndroid Build Coastguard Worker 2358*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vtrn2_s8(<8 x i8> %a) { 2359*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2_s8: 2360*9880d681SAndroid Build Coastguard Worker; CHECK: rev16 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2361*9880d681SAndroid Build Coastguard Workerentry: 2362*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 2363*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 2364*9880d681SAndroid Build Coastguard Worker} 2365*9880d681SAndroid Build Coastguard Worker 2366*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vtrn2q_s8(<16 x i8> %a) { 2367*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2q_s8: 2368*9880d681SAndroid Build Coastguard Worker; CHECK: rev16 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2369*9880d681SAndroid Build Coastguard Workerentry: 2370*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31> 2371*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 2372*9880d681SAndroid Build Coastguard Worker} 2373*9880d681SAndroid Build Coastguard Worker 2374*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vtrn2_s16(<4 x i16> %a) { 2375*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2_s16: 2376*9880d681SAndroid Build Coastguard Worker; CHECK: rev32 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2377*9880d681SAndroid Build Coastguard Workerentry: 2378*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 2379*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 2380*9880d681SAndroid Build Coastguard Worker} 2381*9880d681SAndroid Build Coastguard Worker 2382*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vtrn2q_s16(<8 x i16> %a) { 2383*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2q_s16: 2384*9880d681SAndroid Build Coastguard Worker; CHECK: rev32 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2385*9880d681SAndroid Build Coastguard Workerentry: 2386*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 2387*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 2388*9880d681SAndroid Build Coastguard Worker} 2389*9880d681SAndroid Build Coastguard Worker 2390*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_undef_vtrn2q_s32(<4 x i32> %a) { 2391*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2q_s32: 2392*9880d681SAndroid Build Coastguard Worker; CHECK: rev64 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2393*9880d681SAndroid Build Coastguard Workerentry: 2394*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 2395*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 2396*9880d681SAndroid Build Coastguard Worker} 2397*9880d681SAndroid Build Coastguard Worker 2398*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vtrn2_u8(<8 x i8> %a) { 2399*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2_u8: 2400*9880d681SAndroid Build Coastguard Worker; CHECK: rev16 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2401*9880d681SAndroid Build Coastguard Workerentry: 2402*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 2403*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 2404*9880d681SAndroid Build Coastguard Worker} 2405*9880d681SAndroid Build Coastguard Worker 2406*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vtrn2q_u8(<16 x i8> %a) { 2407*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2q_u8: 2408*9880d681SAndroid Build Coastguard Worker; CHECK: rev16 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2409*9880d681SAndroid Build Coastguard Workerentry: 2410*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31> 2411*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 2412*9880d681SAndroid Build Coastguard Worker} 2413*9880d681SAndroid Build Coastguard Worker 2414*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vtrn2_u16(<4 x i16> %a) { 2415*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2_u16: 2416*9880d681SAndroid Build Coastguard Worker; CHECK: rev32 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2417*9880d681SAndroid Build Coastguard Workerentry: 2418*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 2419*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 2420*9880d681SAndroid Build Coastguard Worker} 2421*9880d681SAndroid Build Coastguard Worker 2422*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vtrn2q_u16(<8 x i16> %a) { 2423*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2q_u16: 2424*9880d681SAndroid Build Coastguard Worker; CHECK: rev32 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2425*9880d681SAndroid Build Coastguard Workerentry: 2426*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 2427*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 2428*9880d681SAndroid Build Coastguard Worker} 2429*9880d681SAndroid Build Coastguard Worker 2430*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_undef_vtrn2q_u32(<4 x i32> %a) { 2431*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2q_u32: 2432*9880d681SAndroid Build Coastguard Worker; CHECK: rev64 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2433*9880d681SAndroid Build Coastguard Workerentry: 2434*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 2435*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %shuffle.i 2436*9880d681SAndroid Build Coastguard Worker} 2437*9880d681SAndroid Build Coastguard Worker 2438*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_undef_vtrn2q_f32(<4 x float> %a) { 2439*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2q_f32: 2440*9880d681SAndroid Build Coastguard Worker; CHECK: rev64 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2441*9880d681SAndroid Build Coastguard Workerentry: 2442*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x float> %a, <4 x float> undef, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 2443*9880d681SAndroid Build Coastguard Worker ret <4 x float> %shuffle.i 2444*9880d681SAndroid Build Coastguard Worker} 2445*9880d681SAndroid Build Coastguard Worker 2446*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @test_undef_vtrn2_p8(<8 x i8> %a) { 2447*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2_p8: 2448*9880d681SAndroid Build Coastguard Worker; CHECK: rev16 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2449*9880d681SAndroid Build Coastguard Workerentry: 2450*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i8> %a, <8 x i8> undef, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 2451*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %shuffle.i 2452*9880d681SAndroid Build Coastguard Worker} 2453*9880d681SAndroid Build Coastguard Worker 2454*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_undef_vtrn2q_p8(<16 x i8> %a) { 2455*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2q_p8: 2456*9880d681SAndroid Build Coastguard Worker; CHECK: rev16 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2457*9880d681SAndroid Build Coastguard Workerentry: 2458*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <16 x i32> <i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31> 2459*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %shuffle.i 2460*9880d681SAndroid Build Coastguard Worker} 2461*9880d681SAndroid Build Coastguard Worker 2462*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_undef_vtrn2_p16(<4 x i16> %a) { 2463*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2_p16: 2464*9880d681SAndroid Build Coastguard Worker; CHECK: rev32 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2465*9880d681SAndroid Build Coastguard Workerentry: 2466*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <4 x i16> %a, <4 x i16> undef, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 2467*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %shuffle.i 2468*9880d681SAndroid Build Coastguard Worker} 2469*9880d681SAndroid Build Coastguard Worker 2470*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_undef_vtrn2q_p16(<8 x i16> %a) { 2471*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_undef_vtrn2q_p16: 2472*9880d681SAndroid Build Coastguard Worker; CHECK: rev32 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2473*9880d681SAndroid Build Coastguard Workerentry: 2474*9880d681SAndroid Build Coastguard Worker %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 2475*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %shuffle.i 2476*9880d681SAndroid Build Coastguard Worker} 2477*9880d681SAndroid Build Coastguard Worker 2478*9880d681SAndroid Build Coastguard Workerdefine %struct.int8x8x2_t @test_vuzp_s8(<8 x i8> %a, <8 x i8> %b) { 2479*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp_s8: 2480*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2481*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2482*9880d681SAndroid Build Coastguard Workerentry: 2483*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 2484*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 2485*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int8x8x2_t undef, <8 x i8> %vuzp.i, 0, 0 2486*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int8x8x2_t %.fca.0.0.insert, <8 x i8> %vuzp1.i, 0, 1 2487*9880d681SAndroid Build Coastguard Worker ret %struct.int8x8x2_t %.fca.0.1.insert 2488*9880d681SAndroid Build Coastguard Worker} 2489*9880d681SAndroid Build Coastguard Worker 2490*9880d681SAndroid Build Coastguard Workerdefine %struct.int16x4x2_t @test_vuzp_s16(<4 x i16> %a, <4 x i16> %b) { 2491*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp_s16: 2492*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2493*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2494*9880d681SAndroid Build Coastguard Workerentry: 2495*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 2496*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 2497*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int16x4x2_t undef, <4 x i16> %vuzp.i, 0, 0 2498*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int16x4x2_t %.fca.0.0.insert, <4 x i16> %vuzp1.i, 0, 1 2499*9880d681SAndroid Build Coastguard Worker ret %struct.int16x4x2_t %.fca.0.1.insert 2500*9880d681SAndroid Build Coastguard Worker} 2501*9880d681SAndroid Build Coastguard Worker 2502*9880d681SAndroid Build Coastguard Workerdefine %struct.int32x2x2_t @test_vuzp_s32(<2 x i32> %a, <2 x i32> %b) { 2503*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp_s32: 2504*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2505*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2506*9880d681SAndroid Build Coastguard Workerentry: 2507*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 0, i32 2> 2508*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 3> 2509*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int32x2x2_t undef, <2 x i32> %vuzp.i, 0, 0 2510*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int32x2x2_t %.fca.0.0.insert, <2 x i32> %vuzp1.i, 0, 1 2511*9880d681SAndroid Build Coastguard Worker ret %struct.int32x2x2_t %.fca.0.1.insert 2512*9880d681SAndroid Build Coastguard Worker} 2513*9880d681SAndroid Build Coastguard Worker 2514*9880d681SAndroid Build Coastguard Workerdefine %struct.uint8x8x2_t @test_vuzp_u8(<8 x i8> %a, <8 x i8> %b) { 2515*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp_u8: 2516*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2517*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2518*9880d681SAndroid Build Coastguard Workerentry: 2519*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 2520*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 2521*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint8x8x2_t undef, <8 x i8> %vuzp.i, 0, 0 2522*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint8x8x2_t %.fca.0.0.insert, <8 x i8> %vuzp1.i, 0, 1 2523*9880d681SAndroid Build Coastguard Worker ret %struct.uint8x8x2_t %.fca.0.1.insert 2524*9880d681SAndroid Build Coastguard Worker} 2525*9880d681SAndroid Build Coastguard Worker 2526*9880d681SAndroid Build Coastguard Workerdefine %struct.uint16x4x2_t @test_vuzp_u16(<4 x i16> %a, <4 x i16> %b) { 2527*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp_u16: 2528*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2529*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2530*9880d681SAndroid Build Coastguard Workerentry: 2531*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 2532*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 2533*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint16x4x2_t undef, <4 x i16> %vuzp.i, 0, 0 2534*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint16x4x2_t %.fca.0.0.insert, <4 x i16> %vuzp1.i, 0, 1 2535*9880d681SAndroid Build Coastguard Worker ret %struct.uint16x4x2_t %.fca.0.1.insert 2536*9880d681SAndroid Build Coastguard Worker} 2537*9880d681SAndroid Build Coastguard Worker 2538*9880d681SAndroid Build Coastguard Workerdefine %struct.uint32x2x2_t @test_vuzp_u32(<2 x i32> %a, <2 x i32> %b) { 2539*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp_u32: 2540*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2541*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2542*9880d681SAndroid Build Coastguard Workerentry: 2543*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 0, i32 2> 2544*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 3> 2545*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint32x2x2_t undef, <2 x i32> %vuzp.i, 0, 0 2546*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint32x2x2_t %.fca.0.0.insert, <2 x i32> %vuzp1.i, 0, 1 2547*9880d681SAndroid Build Coastguard Worker ret %struct.uint32x2x2_t %.fca.0.1.insert 2548*9880d681SAndroid Build Coastguard Worker} 2549*9880d681SAndroid Build Coastguard Worker 2550*9880d681SAndroid Build Coastguard Workerdefine %struct.float32x2x2_t @test_vuzp_f32(<2 x float> %a, <2 x float> %b) { 2551*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp_f32: 2552*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2553*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2554*9880d681SAndroid Build Coastguard Workerentry: 2555*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <2 x float> %a, <2 x float> %b, <2 x i32> <i32 0, i32 2> 2556*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <2 x float> %a, <2 x float> %b, <2 x i32> <i32 1, i32 3> 2557*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.float32x2x2_t undef, <2 x float> %vuzp.i, 0, 0 2558*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.float32x2x2_t %.fca.0.0.insert, <2 x float> %vuzp1.i, 0, 1 2559*9880d681SAndroid Build Coastguard Worker ret %struct.float32x2x2_t %.fca.0.1.insert 2560*9880d681SAndroid Build Coastguard Worker} 2561*9880d681SAndroid Build Coastguard Worker 2562*9880d681SAndroid Build Coastguard Workerdefine %struct.poly8x8x2_t @test_vuzp_p8(<8 x i8> %a, <8 x i8> %b) { 2563*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp_p8: 2564*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2565*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2566*9880d681SAndroid Build Coastguard Workerentry: 2567*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 2568*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 2569*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.poly8x8x2_t undef, <8 x i8> %vuzp.i, 0, 0 2570*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.poly8x8x2_t %.fca.0.0.insert, <8 x i8> %vuzp1.i, 0, 1 2571*9880d681SAndroid Build Coastguard Worker ret %struct.poly8x8x2_t %.fca.0.1.insert 2572*9880d681SAndroid Build Coastguard Worker} 2573*9880d681SAndroid Build Coastguard Worker 2574*9880d681SAndroid Build Coastguard Workerdefine %struct.poly16x4x2_t @test_vuzp_p16(<4 x i16> %a, <4 x i16> %b) { 2575*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzp_p16: 2576*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2577*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2578*9880d681SAndroid Build Coastguard Workerentry: 2579*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 2580*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 2581*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.poly16x4x2_t undef, <4 x i16> %vuzp.i, 0, 0 2582*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.poly16x4x2_t %.fca.0.0.insert, <4 x i16> %vuzp1.i, 0, 1 2583*9880d681SAndroid Build Coastguard Worker ret %struct.poly16x4x2_t %.fca.0.1.insert 2584*9880d681SAndroid Build Coastguard Worker} 2585*9880d681SAndroid Build Coastguard Worker 2586*9880d681SAndroid Build Coastguard Workerdefine %struct.int8x16x2_t @test_vuzpq_s8(<16 x i8> %a, <16 x i8> %b) { 2587*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzpq_s8: 2588*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2589*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2590*9880d681SAndroid Build Coastguard Workerentry: 2591*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30> 2592*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31> 2593*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int8x16x2_t undef, <16 x i8> %vuzp.i, 0, 0 2594*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int8x16x2_t %.fca.0.0.insert, <16 x i8> %vuzp1.i, 0, 1 2595*9880d681SAndroid Build Coastguard Worker ret %struct.int8x16x2_t %.fca.0.1.insert 2596*9880d681SAndroid Build Coastguard Worker} 2597*9880d681SAndroid Build Coastguard Worker 2598*9880d681SAndroid Build Coastguard Workerdefine %struct.int16x8x2_t @test_vuzpq_s16(<8 x i16> %a, <8 x i16> %b) { 2599*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzpq_s16: 2600*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2601*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2602*9880d681SAndroid Build Coastguard Workerentry: 2603*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 2604*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 2605*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int16x8x2_t undef, <8 x i16> %vuzp.i, 0, 0 2606*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int16x8x2_t %.fca.0.0.insert, <8 x i16> %vuzp1.i, 0, 1 2607*9880d681SAndroid Build Coastguard Worker ret %struct.int16x8x2_t %.fca.0.1.insert 2608*9880d681SAndroid Build Coastguard Worker} 2609*9880d681SAndroid Build Coastguard Worker 2610*9880d681SAndroid Build Coastguard Workerdefine %struct.int32x4x2_t @test_vuzpq_s32(<4 x i32> %a, <4 x i32> %b) { 2611*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzpq_s32: 2612*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2613*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2614*9880d681SAndroid Build Coastguard Workerentry: 2615*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 2616*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 2617*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int32x4x2_t undef, <4 x i32> %vuzp.i, 0, 0 2618*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int32x4x2_t %.fca.0.0.insert, <4 x i32> %vuzp1.i, 0, 1 2619*9880d681SAndroid Build Coastguard Worker ret %struct.int32x4x2_t %.fca.0.1.insert 2620*9880d681SAndroid Build Coastguard Worker} 2621*9880d681SAndroid Build Coastguard Worker 2622*9880d681SAndroid Build Coastguard Workerdefine %struct.uint8x16x2_t @test_vuzpq_u8(<16 x i8> %a, <16 x i8> %b) { 2623*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzpq_u8: 2624*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2625*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2626*9880d681SAndroid Build Coastguard Workerentry: 2627*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30> 2628*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31> 2629*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint8x16x2_t undef, <16 x i8> %vuzp.i, 0, 0 2630*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint8x16x2_t %.fca.0.0.insert, <16 x i8> %vuzp1.i, 0, 1 2631*9880d681SAndroid Build Coastguard Worker ret %struct.uint8x16x2_t %.fca.0.1.insert 2632*9880d681SAndroid Build Coastguard Worker} 2633*9880d681SAndroid Build Coastguard Worker 2634*9880d681SAndroid Build Coastguard Workerdefine %struct.uint16x8x2_t @test_vuzpq_u16(<8 x i16> %a, <8 x i16> %b) { 2635*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzpq_u16: 2636*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2637*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2638*9880d681SAndroid Build Coastguard Workerentry: 2639*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 2640*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 2641*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint16x8x2_t undef, <8 x i16> %vuzp.i, 0, 0 2642*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint16x8x2_t %.fca.0.0.insert, <8 x i16> %vuzp1.i, 0, 1 2643*9880d681SAndroid Build Coastguard Worker ret %struct.uint16x8x2_t %.fca.0.1.insert 2644*9880d681SAndroid Build Coastguard Worker} 2645*9880d681SAndroid Build Coastguard Worker 2646*9880d681SAndroid Build Coastguard Workerdefine %struct.uint32x4x2_t @test_vuzpq_u32(<4 x i32> %a, <4 x i32> %b) { 2647*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzpq_u32: 2648*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2649*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2650*9880d681SAndroid Build Coastguard Workerentry: 2651*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 2652*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 2653*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint32x4x2_t undef, <4 x i32> %vuzp.i, 0, 0 2654*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint32x4x2_t %.fca.0.0.insert, <4 x i32> %vuzp1.i, 0, 1 2655*9880d681SAndroid Build Coastguard Worker ret %struct.uint32x4x2_t %.fca.0.1.insert 2656*9880d681SAndroid Build Coastguard Worker} 2657*9880d681SAndroid Build Coastguard Worker 2658*9880d681SAndroid Build Coastguard Workerdefine %struct.float32x4x2_t @test_vuzpq_f32(<4 x float> %a, <4 x float> %b) { 2659*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzpq_f32: 2660*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2661*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2662*9880d681SAndroid Build Coastguard Workerentry: 2663*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 2664*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 2665*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.float32x4x2_t undef, <4 x float> %vuzp.i, 0, 0 2666*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.float32x4x2_t %.fca.0.0.insert, <4 x float> %vuzp1.i, 0, 1 2667*9880d681SAndroid Build Coastguard Worker ret %struct.float32x4x2_t %.fca.0.1.insert 2668*9880d681SAndroid Build Coastguard Worker} 2669*9880d681SAndroid Build Coastguard Worker 2670*9880d681SAndroid Build Coastguard Workerdefine %struct.poly8x16x2_t @test_vuzpq_p8(<16 x i8> %a, <16 x i8> %b) { 2671*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzpq_p8: 2672*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2673*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2674*9880d681SAndroid Build Coastguard Workerentry: 2675*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30> 2676*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31> 2677*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.poly8x16x2_t undef, <16 x i8> %vuzp.i, 0, 0 2678*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.poly8x16x2_t %.fca.0.0.insert, <16 x i8> %vuzp1.i, 0, 1 2679*9880d681SAndroid Build Coastguard Worker ret %struct.poly8x16x2_t %.fca.0.1.insert 2680*9880d681SAndroid Build Coastguard Worker} 2681*9880d681SAndroid Build Coastguard Worker 2682*9880d681SAndroid Build Coastguard Workerdefine %struct.poly16x8x2_t @test_vuzpq_p16(<8 x i16> %a, <8 x i16> %b) { 2683*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vuzpq_p16: 2684*9880d681SAndroid Build Coastguard Worker; CHECK: uzp1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2685*9880d681SAndroid Build Coastguard Worker; CHECK: uzp2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2686*9880d681SAndroid Build Coastguard Workerentry: 2687*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 2688*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 2689*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.poly16x8x2_t undef, <8 x i16> %vuzp.i, 0, 0 2690*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.poly16x8x2_t %.fca.0.0.insert, <8 x i16> %vuzp1.i, 0, 1 2691*9880d681SAndroid Build Coastguard Worker ret %struct.poly16x8x2_t %.fca.0.1.insert 2692*9880d681SAndroid Build Coastguard Worker} 2693*9880d681SAndroid Build Coastguard Worker 2694*9880d681SAndroid Build Coastguard Workerdefine %struct.int8x8x2_t @test_vzip_s8(<8 x i8> %a, <8 x i8> %b) { 2695*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip_s8: 2696*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2697*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2698*9880d681SAndroid Build Coastguard Workerentry: 2699*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 2700*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 2701*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int8x8x2_t undef, <8 x i8> %vzip.i, 0, 0 2702*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int8x8x2_t %.fca.0.0.insert, <8 x i8> %vzip1.i, 0, 1 2703*9880d681SAndroid Build Coastguard Worker ret %struct.int8x8x2_t %.fca.0.1.insert 2704*9880d681SAndroid Build Coastguard Worker} 2705*9880d681SAndroid Build Coastguard Worker 2706*9880d681SAndroid Build Coastguard Workerdefine %struct.int16x4x2_t @test_vzip_s16(<4 x i16> %a, <4 x i16> %b) { 2707*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip_s16: 2708*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2709*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2710*9880d681SAndroid Build Coastguard Workerentry: 2711*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 2712*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 2713*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int16x4x2_t undef, <4 x i16> %vzip.i, 0, 0 2714*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int16x4x2_t %.fca.0.0.insert, <4 x i16> %vzip1.i, 0, 1 2715*9880d681SAndroid Build Coastguard Worker ret %struct.int16x4x2_t %.fca.0.1.insert 2716*9880d681SAndroid Build Coastguard Worker} 2717*9880d681SAndroid Build Coastguard Worker 2718*9880d681SAndroid Build Coastguard Workerdefine %struct.int32x2x2_t @test_vzip_s32(<2 x i32> %a, <2 x i32> %b) { 2719*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip_s32: 2720*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2721*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2722*9880d681SAndroid Build Coastguard Workerentry: 2723*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 0, i32 2> 2724*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 3> 2725*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int32x2x2_t undef, <2 x i32> %vzip.i, 0, 0 2726*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int32x2x2_t %.fca.0.0.insert, <2 x i32> %vzip1.i, 0, 1 2727*9880d681SAndroid Build Coastguard Worker ret %struct.int32x2x2_t %.fca.0.1.insert 2728*9880d681SAndroid Build Coastguard Worker} 2729*9880d681SAndroid Build Coastguard Worker 2730*9880d681SAndroid Build Coastguard Workerdefine %struct.uint8x8x2_t @test_vzip_u8(<8 x i8> %a, <8 x i8> %b) { 2731*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip_u8: 2732*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2733*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2734*9880d681SAndroid Build Coastguard Workerentry: 2735*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 2736*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 2737*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint8x8x2_t undef, <8 x i8> %vzip.i, 0, 0 2738*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint8x8x2_t %.fca.0.0.insert, <8 x i8> %vzip1.i, 0, 1 2739*9880d681SAndroid Build Coastguard Worker ret %struct.uint8x8x2_t %.fca.0.1.insert 2740*9880d681SAndroid Build Coastguard Worker} 2741*9880d681SAndroid Build Coastguard Worker 2742*9880d681SAndroid Build Coastguard Workerdefine %struct.uint16x4x2_t @test_vzip_u16(<4 x i16> %a, <4 x i16> %b) { 2743*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip_u16: 2744*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2745*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2746*9880d681SAndroid Build Coastguard Workerentry: 2747*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 2748*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 2749*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint16x4x2_t undef, <4 x i16> %vzip.i, 0, 0 2750*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint16x4x2_t %.fca.0.0.insert, <4 x i16> %vzip1.i, 0, 1 2751*9880d681SAndroid Build Coastguard Worker ret %struct.uint16x4x2_t %.fca.0.1.insert 2752*9880d681SAndroid Build Coastguard Worker} 2753*9880d681SAndroid Build Coastguard Worker 2754*9880d681SAndroid Build Coastguard Workerdefine %struct.uint32x2x2_t @test_vzip_u32(<2 x i32> %a, <2 x i32> %b) { 2755*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip_u32: 2756*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2757*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2758*9880d681SAndroid Build Coastguard Workerentry: 2759*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 0, i32 2> 2760*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 3> 2761*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint32x2x2_t undef, <2 x i32> %vzip.i, 0, 0 2762*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint32x2x2_t %.fca.0.0.insert, <2 x i32> %vzip1.i, 0, 1 2763*9880d681SAndroid Build Coastguard Worker ret %struct.uint32x2x2_t %.fca.0.1.insert 2764*9880d681SAndroid Build Coastguard Worker} 2765*9880d681SAndroid Build Coastguard Worker 2766*9880d681SAndroid Build Coastguard Workerdefine %struct.float32x2x2_t @test_vzip_f32(<2 x float> %a, <2 x float> %b) { 2767*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip_f32: 2768*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2769*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2770*9880d681SAndroid Build Coastguard Workerentry: 2771*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <2 x float> %a, <2 x float> %b, <2 x i32> <i32 0, i32 2> 2772*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <2 x float> %a, <2 x float> %b, <2 x i32> <i32 1, i32 3> 2773*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.float32x2x2_t undef, <2 x float> %vzip.i, 0, 0 2774*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.float32x2x2_t %.fca.0.0.insert, <2 x float> %vzip1.i, 0, 1 2775*9880d681SAndroid Build Coastguard Worker ret %struct.float32x2x2_t %.fca.0.1.insert 2776*9880d681SAndroid Build Coastguard Worker} 2777*9880d681SAndroid Build Coastguard Worker 2778*9880d681SAndroid Build Coastguard Workerdefine %struct.poly8x8x2_t @test_vzip_p8(<8 x i8> %a, <8 x i8> %b) { 2779*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip_p8: 2780*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2781*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2782*9880d681SAndroid Build Coastguard Workerentry: 2783*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 2784*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 2785*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.poly8x8x2_t undef, <8 x i8> %vzip.i, 0, 0 2786*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.poly8x8x2_t %.fca.0.0.insert, <8 x i8> %vzip1.i, 0, 1 2787*9880d681SAndroid Build Coastguard Worker ret %struct.poly8x8x2_t %.fca.0.1.insert 2788*9880d681SAndroid Build Coastguard Worker} 2789*9880d681SAndroid Build Coastguard Worker 2790*9880d681SAndroid Build Coastguard Workerdefine %struct.poly16x4x2_t @test_vzip_p16(<4 x i16> %a, <4 x i16> %b) { 2791*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzip_p16: 2792*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2793*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2794*9880d681SAndroid Build Coastguard Workerentry: 2795*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 2796*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 2797*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.poly16x4x2_t undef, <4 x i16> %vzip.i, 0, 0 2798*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.poly16x4x2_t %.fca.0.0.insert, <4 x i16> %vzip1.i, 0, 1 2799*9880d681SAndroid Build Coastguard Worker ret %struct.poly16x4x2_t %.fca.0.1.insert 2800*9880d681SAndroid Build Coastguard Worker} 2801*9880d681SAndroid Build Coastguard Worker 2802*9880d681SAndroid Build Coastguard Workerdefine %struct.int8x16x2_t @test_vzipq_s8(<16 x i8> %a, <16 x i8> %b) { 2803*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzipq_s8: 2804*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2805*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2806*9880d681SAndroid Build Coastguard Workerentry: 2807*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 2808*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31> 2809*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int8x16x2_t undef, <16 x i8> %vzip.i, 0, 0 2810*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int8x16x2_t %.fca.0.0.insert, <16 x i8> %vzip1.i, 0, 1 2811*9880d681SAndroid Build Coastguard Worker ret %struct.int8x16x2_t %.fca.0.1.insert 2812*9880d681SAndroid Build Coastguard Worker} 2813*9880d681SAndroid Build Coastguard Worker 2814*9880d681SAndroid Build Coastguard Workerdefine %struct.int16x8x2_t @test_vzipq_s16(<8 x i16> %a, <8 x i16> %b) { 2815*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzipq_s16: 2816*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2817*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2818*9880d681SAndroid Build Coastguard Workerentry: 2819*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 2820*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 2821*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int16x8x2_t undef, <8 x i16> %vzip.i, 0, 0 2822*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int16x8x2_t %.fca.0.0.insert, <8 x i16> %vzip1.i, 0, 1 2823*9880d681SAndroid Build Coastguard Worker ret %struct.int16x8x2_t %.fca.0.1.insert 2824*9880d681SAndroid Build Coastguard Worker} 2825*9880d681SAndroid Build Coastguard Worker 2826*9880d681SAndroid Build Coastguard Workerdefine %struct.int32x4x2_t @test_vzipq_s32(<4 x i32> %a, <4 x i32> %b) { 2827*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzipq_s32: 2828*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2829*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2830*9880d681SAndroid Build Coastguard Workerentry: 2831*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 2832*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 2833*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int32x4x2_t undef, <4 x i32> %vzip.i, 0, 0 2834*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int32x4x2_t %.fca.0.0.insert, <4 x i32> %vzip1.i, 0, 1 2835*9880d681SAndroid Build Coastguard Worker ret %struct.int32x4x2_t %.fca.0.1.insert 2836*9880d681SAndroid Build Coastguard Worker} 2837*9880d681SAndroid Build Coastguard Worker 2838*9880d681SAndroid Build Coastguard Workerdefine %struct.uint8x16x2_t @test_vzipq_u8(<16 x i8> %a, <16 x i8> %b) { 2839*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzipq_u8: 2840*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2841*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2842*9880d681SAndroid Build Coastguard Workerentry: 2843*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 2844*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31> 2845*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint8x16x2_t undef, <16 x i8> %vzip.i, 0, 0 2846*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint8x16x2_t %.fca.0.0.insert, <16 x i8> %vzip1.i, 0, 1 2847*9880d681SAndroid Build Coastguard Worker ret %struct.uint8x16x2_t %.fca.0.1.insert 2848*9880d681SAndroid Build Coastguard Worker} 2849*9880d681SAndroid Build Coastguard Worker 2850*9880d681SAndroid Build Coastguard Workerdefine %struct.uint16x8x2_t @test_vzipq_u16(<8 x i16> %a, <8 x i16> %b) { 2851*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzipq_u16: 2852*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2853*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2854*9880d681SAndroid Build Coastguard Workerentry: 2855*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 2856*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 2857*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint16x8x2_t undef, <8 x i16> %vzip.i, 0, 0 2858*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint16x8x2_t %.fca.0.0.insert, <8 x i16> %vzip1.i, 0, 1 2859*9880d681SAndroid Build Coastguard Worker ret %struct.uint16x8x2_t %.fca.0.1.insert 2860*9880d681SAndroid Build Coastguard Worker} 2861*9880d681SAndroid Build Coastguard Worker 2862*9880d681SAndroid Build Coastguard Workerdefine %struct.uint32x4x2_t @test_vzipq_u32(<4 x i32> %a, <4 x i32> %b) { 2863*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzipq_u32: 2864*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2865*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2866*9880d681SAndroid Build Coastguard Workerentry: 2867*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 2868*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 2869*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint32x4x2_t undef, <4 x i32> %vzip.i, 0, 0 2870*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint32x4x2_t %.fca.0.0.insert, <4 x i32> %vzip1.i, 0, 1 2871*9880d681SAndroid Build Coastguard Worker ret %struct.uint32x4x2_t %.fca.0.1.insert 2872*9880d681SAndroid Build Coastguard Worker} 2873*9880d681SAndroid Build Coastguard Worker 2874*9880d681SAndroid Build Coastguard Workerdefine %struct.float32x4x2_t @test_vzipq_f32(<4 x float> %a, <4 x float> %b) { 2875*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzipq_f32: 2876*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2877*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2878*9880d681SAndroid Build Coastguard Workerentry: 2879*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 2880*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 2881*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.float32x4x2_t undef, <4 x float> %vzip.i, 0, 0 2882*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.float32x4x2_t %.fca.0.0.insert, <4 x float> %vzip1.i, 0, 1 2883*9880d681SAndroid Build Coastguard Worker ret %struct.float32x4x2_t %.fca.0.1.insert 2884*9880d681SAndroid Build Coastguard Worker} 2885*9880d681SAndroid Build Coastguard Worker 2886*9880d681SAndroid Build Coastguard Workerdefine %struct.poly8x16x2_t @test_vzipq_p8(<16 x i8> %a, <16 x i8> %b) { 2887*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzipq_p8: 2888*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2889*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2890*9880d681SAndroid Build Coastguard Workerentry: 2891*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 2892*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31> 2893*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.poly8x16x2_t undef, <16 x i8> %vzip.i, 0, 0 2894*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.poly8x16x2_t %.fca.0.0.insert, <16 x i8> %vzip1.i, 0, 1 2895*9880d681SAndroid Build Coastguard Worker ret %struct.poly8x16x2_t %.fca.0.1.insert 2896*9880d681SAndroid Build Coastguard Worker} 2897*9880d681SAndroid Build Coastguard Worker 2898*9880d681SAndroid Build Coastguard Workerdefine %struct.poly16x8x2_t @test_vzipq_p16(<8 x i16> %a, <8 x i16> %b) { 2899*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vzipq_p16: 2900*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2901*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2902*9880d681SAndroid Build Coastguard Workerentry: 2903*9880d681SAndroid Build Coastguard Worker %vzip.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 2904*9880d681SAndroid Build Coastguard Worker %vzip1.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 2905*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.poly16x8x2_t undef, <8 x i16> %vzip.i, 0, 0 2906*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.poly16x8x2_t %.fca.0.0.insert, <8 x i16> %vzip1.i, 0, 1 2907*9880d681SAndroid Build Coastguard Worker ret %struct.poly16x8x2_t %.fca.0.1.insert 2908*9880d681SAndroid Build Coastguard Worker} 2909*9880d681SAndroid Build Coastguard Worker 2910*9880d681SAndroid Build Coastguard Workerdefine %struct.int8x8x2_t @test_vtrn_s8(<8 x i8> %a, <8 x i8> %b) { 2911*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn_s8: 2912*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2913*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2914*9880d681SAndroid Build Coastguard Workerentry: 2915*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 2916*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 2917*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int8x8x2_t undef, <8 x i8> %vtrn.i, 0, 0 2918*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int8x8x2_t %.fca.0.0.insert, <8 x i8> %vtrn1.i, 0, 1 2919*9880d681SAndroid Build Coastguard Worker ret %struct.int8x8x2_t %.fca.0.1.insert 2920*9880d681SAndroid Build Coastguard Worker} 2921*9880d681SAndroid Build Coastguard Worker 2922*9880d681SAndroid Build Coastguard Workerdefine %struct.int16x4x2_t @test_vtrn_s16(<4 x i16> %a, <4 x i16> %b) { 2923*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn_s16: 2924*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2925*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2926*9880d681SAndroid Build Coastguard Workerentry: 2927*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 2928*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 2929*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int16x4x2_t undef, <4 x i16> %vtrn.i, 0, 0 2930*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int16x4x2_t %.fca.0.0.insert, <4 x i16> %vtrn1.i, 0, 1 2931*9880d681SAndroid Build Coastguard Worker ret %struct.int16x4x2_t %.fca.0.1.insert 2932*9880d681SAndroid Build Coastguard Worker} 2933*9880d681SAndroid Build Coastguard Worker 2934*9880d681SAndroid Build Coastguard Workerdefine %struct.int32x2x2_t @test_vtrn_s32(<2 x i32> %a, <2 x i32> %b) { 2935*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn_s32: 2936*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2937*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2938*9880d681SAndroid Build Coastguard Workerentry: 2939*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 0, i32 2> 2940*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 3> 2941*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int32x2x2_t undef, <2 x i32> %vtrn.i, 0, 0 2942*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int32x2x2_t %.fca.0.0.insert, <2 x i32> %vtrn1.i, 0, 1 2943*9880d681SAndroid Build Coastguard Worker ret %struct.int32x2x2_t %.fca.0.1.insert 2944*9880d681SAndroid Build Coastguard Worker} 2945*9880d681SAndroid Build Coastguard Worker 2946*9880d681SAndroid Build Coastguard Workerdefine %struct.uint8x8x2_t @test_vtrn_u8(<8 x i8> %a, <8 x i8> %b) { 2947*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn_u8: 2948*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2949*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2950*9880d681SAndroid Build Coastguard Workerentry: 2951*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 2952*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 2953*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint8x8x2_t undef, <8 x i8> %vtrn.i, 0, 0 2954*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint8x8x2_t %.fca.0.0.insert, <8 x i8> %vtrn1.i, 0, 1 2955*9880d681SAndroid Build Coastguard Worker ret %struct.uint8x8x2_t %.fca.0.1.insert 2956*9880d681SAndroid Build Coastguard Worker} 2957*9880d681SAndroid Build Coastguard Worker 2958*9880d681SAndroid Build Coastguard Workerdefine %struct.uint16x4x2_t @test_vtrn_u16(<4 x i16> %a, <4 x i16> %b) { 2959*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn_u16: 2960*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2961*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2962*9880d681SAndroid Build Coastguard Workerentry: 2963*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 2964*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 2965*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint16x4x2_t undef, <4 x i16> %vtrn.i, 0, 0 2966*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint16x4x2_t %.fca.0.0.insert, <4 x i16> %vtrn1.i, 0, 1 2967*9880d681SAndroid Build Coastguard Worker ret %struct.uint16x4x2_t %.fca.0.1.insert 2968*9880d681SAndroid Build Coastguard Worker} 2969*9880d681SAndroid Build Coastguard Worker 2970*9880d681SAndroid Build Coastguard Workerdefine %struct.uint32x2x2_t @test_vtrn_u32(<2 x i32> %a, <2 x i32> %b) { 2971*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn_u32: 2972*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2973*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2974*9880d681SAndroid Build Coastguard Workerentry: 2975*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 0, i32 2> 2976*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <2 x i32> %a, <2 x i32> %b, <2 x i32> <i32 1, i32 3> 2977*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint32x2x2_t undef, <2 x i32> %vtrn.i, 0, 0 2978*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint32x2x2_t %.fca.0.0.insert, <2 x i32> %vtrn1.i, 0, 1 2979*9880d681SAndroid Build Coastguard Worker ret %struct.uint32x2x2_t %.fca.0.1.insert 2980*9880d681SAndroid Build Coastguard Worker} 2981*9880d681SAndroid Build Coastguard Worker 2982*9880d681SAndroid Build Coastguard Workerdefine %struct.float32x2x2_t @test_vtrn_f32(<2 x float> %a, <2 x float> %b) { 2983*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn_f32: 2984*9880d681SAndroid Build Coastguard Worker; CHECK: zip1 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2985*9880d681SAndroid Build Coastguard Worker; CHECK: zip2 {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2986*9880d681SAndroid Build Coastguard Workerentry: 2987*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <2 x float> %a, <2 x float> %b, <2 x i32> <i32 0, i32 2> 2988*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <2 x float> %a, <2 x float> %b, <2 x i32> <i32 1, i32 3> 2989*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.float32x2x2_t undef, <2 x float> %vtrn.i, 0, 0 2990*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.float32x2x2_t %.fca.0.0.insert, <2 x float> %vtrn1.i, 0, 1 2991*9880d681SAndroid Build Coastguard Worker ret %struct.float32x2x2_t %.fca.0.1.insert 2992*9880d681SAndroid Build Coastguard Worker} 2993*9880d681SAndroid Build Coastguard Worker 2994*9880d681SAndroid Build Coastguard Workerdefine %struct.poly8x8x2_t @test_vtrn_p8(<8 x i8> %a, <8 x i8> %b) { 2995*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn_p8: 2996*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2997*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2998*9880d681SAndroid Build Coastguard Workerentry: 2999*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 3000*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <8 x i8> %a, <8 x i8> %b, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 3001*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.poly8x8x2_t undef, <8 x i8> %vtrn.i, 0, 0 3002*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.poly8x8x2_t %.fca.0.0.insert, <8 x i8> %vtrn1.i, 0, 1 3003*9880d681SAndroid Build Coastguard Worker ret %struct.poly8x8x2_t %.fca.0.1.insert 3004*9880d681SAndroid Build Coastguard Worker} 3005*9880d681SAndroid Build Coastguard Worker 3006*9880d681SAndroid Build Coastguard Workerdefine %struct.poly16x4x2_t @test_vtrn_p16(<4 x i16> %a, <4 x i16> %b) { 3007*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrn_p16: 3008*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 3009*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 3010*9880d681SAndroid Build Coastguard Workerentry: 3011*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 3012*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 3013*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.poly16x4x2_t undef, <4 x i16> %vtrn.i, 0, 0 3014*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.poly16x4x2_t %.fca.0.0.insert, <4 x i16> %vtrn1.i, 0, 1 3015*9880d681SAndroid Build Coastguard Worker ret %struct.poly16x4x2_t %.fca.0.1.insert 3016*9880d681SAndroid Build Coastguard Worker} 3017*9880d681SAndroid Build Coastguard Worker 3018*9880d681SAndroid Build Coastguard Workerdefine %struct.int8x16x2_t @test_vtrnq_s8(<16 x i8> %a, <16 x i8> %b) { 3019*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrnq_s8: 3020*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 3021*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 3022*9880d681SAndroid Build Coastguard Workerentry: 3023*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30> 3024*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31> 3025*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int8x16x2_t undef, <16 x i8> %vtrn.i, 0, 0 3026*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int8x16x2_t %.fca.0.0.insert, <16 x i8> %vtrn1.i, 0, 1 3027*9880d681SAndroid Build Coastguard Worker ret %struct.int8x16x2_t %.fca.0.1.insert 3028*9880d681SAndroid Build Coastguard Worker} 3029*9880d681SAndroid Build Coastguard Worker 3030*9880d681SAndroid Build Coastguard Workerdefine %struct.int16x8x2_t @test_vtrnq_s16(<8 x i16> %a, <8 x i16> %b) { 3031*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrnq_s16: 3032*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 3033*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 3034*9880d681SAndroid Build Coastguard Workerentry: 3035*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 3036*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 3037*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int16x8x2_t undef, <8 x i16> %vtrn.i, 0, 0 3038*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int16x8x2_t %.fca.0.0.insert, <8 x i16> %vtrn1.i, 0, 1 3039*9880d681SAndroid Build Coastguard Worker ret %struct.int16x8x2_t %.fca.0.1.insert 3040*9880d681SAndroid Build Coastguard Worker} 3041*9880d681SAndroid Build Coastguard Worker 3042*9880d681SAndroid Build Coastguard Workerdefine %struct.int32x4x2_t @test_vtrnq_s32(<4 x i32> %a, <4 x i32> %b) { 3043*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrnq_s32: 3044*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 3045*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 3046*9880d681SAndroid Build Coastguard Workerentry: 3047*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 3048*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 3049*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.int32x4x2_t undef, <4 x i32> %vtrn.i, 0, 0 3050*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.int32x4x2_t %.fca.0.0.insert, <4 x i32> %vtrn1.i, 0, 1 3051*9880d681SAndroid Build Coastguard Worker ret %struct.int32x4x2_t %.fca.0.1.insert 3052*9880d681SAndroid Build Coastguard Worker} 3053*9880d681SAndroid Build Coastguard Worker 3054*9880d681SAndroid Build Coastguard Workerdefine %struct.uint8x16x2_t @test_vtrnq_u8(<16 x i8> %a, <16 x i8> %b) { 3055*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrnq_u8: 3056*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 3057*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 3058*9880d681SAndroid Build Coastguard Workerentry: 3059*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30> 3060*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31> 3061*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint8x16x2_t undef, <16 x i8> %vtrn.i, 0, 0 3062*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint8x16x2_t %.fca.0.0.insert, <16 x i8> %vtrn1.i, 0, 1 3063*9880d681SAndroid Build Coastguard Worker ret %struct.uint8x16x2_t %.fca.0.1.insert 3064*9880d681SAndroid Build Coastguard Worker} 3065*9880d681SAndroid Build Coastguard Worker 3066*9880d681SAndroid Build Coastguard Workerdefine %struct.uint16x8x2_t @test_vtrnq_u16(<8 x i16> %a, <8 x i16> %b) { 3067*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrnq_u16: 3068*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 3069*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 3070*9880d681SAndroid Build Coastguard Workerentry: 3071*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 3072*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 3073*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint16x8x2_t undef, <8 x i16> %vtrn.i, 0, 0 3074*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint16x8x2_t %.fca.0.0.insert, <8 x i16> %vtrn1.i, 0, 1 3075*9880d681SAndroid Build Coastguard Worker ret %struct.uint16x8x2_t %.fca.0.1.insert 3076*9880d681SAndroid Build Coastguard Worker} 3077*9880d681SAndroid Build Coastguard Worker 3078*9880d681SAndroid Build Coastguard Workerdefine %struct.uint32x4x2_t @test_vtrnq_u32(<4 x i32> %a, <4 x i32> %b) { 3079*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrnq_u32: 3080*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 3081*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 3082*9880d681SAndroid Build Coastguard Workerentry: 3083*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 3084*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 3085*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint32x4x2_t undef, <4 x i32> %vtrn.i, 0, 0 3086*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint32x4x2_t %.fca.0.0.insert, <4 x i32> %vtrn1.i, 0, 1 3087*9880d681SAndroid Build Coastguard Worker ret %struct.uint32x4x2_t %.fca.0.1.insert 3088*9880d681SAndroid Build Coastguard Worker} 3089*9880d681SAndroid Build Coastguard Worker 3090*9880d681SAndroid Build Coastguard Workerdefine %struct.float32x4x2_t @test_vtrnq_f32(<4 x float> %a, <4 x float> %b) { 3091*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrnq_f32: 3092*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 3093*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 3094*9880d681SAndroid Build Coastguard Workerentry: 3095*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 3096*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 3097*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.float32x4x2_t undef, <4 x float> %vtrn.i, 0, 0 3098*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.float32x4x2_t %.fca.0.0.insert, <4 x float> %vtrn1.i, 0, 1 3099*9880d681SAndroid Build Coastguard Worker ret %struct.float32x4x2_t %.fca.0.1.insert 3100*9880d681SAndroid Build Coastguard Worker} 3101*9880d681SAndroid Build Coastguard Worker 3102*9880d681SAndroid Build Coastguard Workerdefine %struct.poly8x16x2_t @test_vtrnq_p8(<16 x i8> %a, <16 x i8> %b) { 3103*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrnq_p8: 3104*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 3105*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 3106*9880d681SAndroid Build Coastguard Workerentry: 3107*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30> 3108*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31> 3109*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.poly8x16x2_t undef, <16 x i8> %vtrn.i, 0, 0 3110*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.poly8x16x2_t %.fca.0.0.insert, <16 x i8> %vtrn1.i, 0, 1 3111*9880d681SAndroid Build Coastguard Worker ret %struct.poly8x16x2_t %.fca.0.1.insert 3112*9880d681SAndroid Build Coastguard Worker} 3113*9880d681SAndroid Build Coastguard Worker 3114*9880d681SAndroid Build Coastguard Workerdefine %struct.poly16x8x2_t @test_vtrnq_p16(<8 x i16> %a, <8 x i16> %b) { 3115*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vtrnq_p16: 3116*9880d681SAndroid Build Coastguard Worker; CHECK: trn1 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 3117*9880d681SAndroid Build Coastguard Worker; CHECK: trn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 3118*9880d681SAndroid Build Coastguard Workerentry: 3119*9880d681SAndroid Build Coastguard Worker %vtrn.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 3120*9880d681SAndroid Build Coastguard Worker %vtrn1.i = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 3121*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.poly16x8x2_t undef, <8 x i16> %vtrn.i, 0, 0 3122*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.poly16x8x2_t %.fca.0.0.insert, <8 x i16> %vtrn1.i, 0, 1 3123*9880d681SAndroid Build Coastguard Worker ret %struct.poly16x8x2_t %.fca.0.1.insert 3124*9880d681SAndroid Build Coastguard Worker} 3125*9880d681SAndroid Build Coastguard Worker 3126*9880d681SAndroid Build Coastguard Workerdefine %struct.uint8x8x2_t @test_uzp(<16 x i8> %y) { 3127*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_uzp: 3128*9880d681SAndroid Build Coastguard Worker 3129*9880d681SAndroid Build Coastguard Worker %vuzp.i = shufflevector <16 x i8> %y, <16 x i8> undef, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14> 3130*9880d681SAndroid Build Coastguard Worker %vuzp1.i = shufflevector <16 x i8> %y, <16 x i8> undef, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15> 3131*9880d681SAndroid Build Coastguard Worker %.fca.0.0.insert = insertvalue %struct.uint8x8x2_t undef, <8 x i8> %vuzp.i, 0, 0 3132*9880d681SAndroid Build Coastguard Worker %.fca.0.1.insert = insertvalue %struct.uint8x8x2_t %.fca.0.0.insert, <8 x i8> %vuzp1.i, 0, 1 3133*9880d681SAndroid Build Coastguard Worker ret %struct.uint8x8x2_t %.fca.0.1.insert 3134*9880d681SAndroid Build Coastguard Worker 3135*9880d681SAndroid Build Coastguard Worker} 3136