1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=pwr9 -mtriple=powerpc64le-unknown-linux-gnu \ 2*9880d681SAndroid Build Coastguard Worker; RUN: -verify-machineinstrs < %s | FileCheck %s 3*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=pwr9 -mtriple=powerpc64-unknown-linux-gnu \ 4*9880d681SAndroid Build Coastguard Worker; RUN: -verify-machineinstrs < %s | FileCheck %s --check-prefix=CHECK-BE 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj0EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 7*9880d681SAndroid Build Coastguard Workerentry: 8*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj0EDv4_fET1_S1_S1_ 9*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 10*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 11*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj0EDv4_fET1_S1_S1_ 12*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 13*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 14*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 4, i32 1, i32 2, i32 3> 15*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 16*9880d681SAndroid Build Coastguard Worker} 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj1EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 19*9880d681SAndroid Build Coastguard Workerentry: 20*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj1EDv4_fET1_S1_S1_ 21*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 22*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 23*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj1EDv4_fET1_S1_S1_ 24*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 25*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 0 26*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 5, i32 1, i32 2, i32 3> 27*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 28*9880d681SAndroid Build Coastguard Worker} 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj2EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 31*9880d681SAndroid Build Coastguard Workerentry: 32*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj2EDv4_fET1_S1_S1_ 33*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 34*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 12 35*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj2EDv4_fET1_S1_S1_ 36*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 37*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 38*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 6, i32 1, i32 2, i32 3> 39*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 40*9880d681SAndroid Build Coastguard Worker} 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj3EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 43*9880d681SAndroid Build Coastguard Workerentry: 44*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj3EDv4_fET1_S1_S1_ 45*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 46*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 47*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj3EDv4_fET1_S1_S1_ 48*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 49*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 50*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 7, i32 1, i32 2, i32 3> 51*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 52*9880d681SAndroid Build Coastguard Worker} 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj0EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 55*9880d681SAndroid Build Coastguard Workerentry: 56*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj0EDv4_fET1_S1_S1_ 57*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 58*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 59*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj0EDv4_fET1_S1_S1_ 60*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 61*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 62*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 3> 63*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 64*9880d681SAndroid Build Coastguard Worker} 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj1EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 67*9880d681SAndroid Build Coastguard Workerentry: 68*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj1EDv4_fET1_S1_S1_ 69*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 70*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 71*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj1EDv4_fET1_S1_S1_ 72*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 73*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 4 74*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 5, i32 2, i32 3> 75*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 76*9880d681SAndroid Build Coastguard Worker} 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj2EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 79*9880d681SAndroid Build Coastguard Workerentry: 80*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj2EDv4_fET1_S1_S1_ 81*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 82*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 8 83*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj2EDv4_fET1_S1_S1_ 84*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 85*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 86*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 6, i32 2, i32 3> 87*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 88*9880d681SAndroid Build Coastguard Worker} 89*9880d681SAndroid Build Coastguard Worker 90*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj3EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 91*9880d681SAndroid Build Coastguard Workerentry: 92*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj3EDv4_fET1_S1_S1_ 93*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 94*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 95*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj3EDv4_fET1_S1_S1_ 96*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 97*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 98*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 7, i32 2, i32 3> 99*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 100*9880d681SAndroid Build Coastguard Worker} 101*9880d681SAndroid Build Coastguard Worker 102*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj0EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 103*9880d681SAndroid Build Coastguard Workerentry: 104*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj0EDv4_fET1_S1_S1_ 105*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 106*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 107*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj0EDv4_fET1_S1_S1_ 108*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 109*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 110*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 4, i32 3> 111*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 112*9880d681SAndroid Build Coastguard Worker} 113*9880d681SAndroid Build Coastguard Worker 114*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj1EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 115*9880d681SAndroid Build Coastguard Workerentry: 116*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj1EDv4_fET1_S1_S1_ 117*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 118*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 119*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj1EDv4_fET1_S1_S1_ 120*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 121*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 8 122*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 5, i32 3> 123*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 124*9880d681SAndroid Build Coastguard Worker} 125*9880d681SAndroid Build Coastguard Worker 126*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj2EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 127*9880d681SAndroid Build Coastguard Workerentry: 128*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj2EDv4_fET1_S1_S1_ 129*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 130*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 4 131*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj2EDv4_fET1_S1_S1_ 132*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 133*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 134*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 6, i32 3> 135*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 136*9880d681SAndroid Build Coastguard Worker} 137*9880d681SAndroid Build Coastguard Worker 138*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj3EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 139*9880d681SAndroid Build Coastguard Workerentry: 140*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj3EDv4_fET1_S1_S1_ 141*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 142*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 143*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj3EDv4_fET1_S1_S1_ 144*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 145*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 146*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 7, i32 3> 147*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 148*9880d681SAndroid Build Coastguard Worker} 149*9880d681SAndroid Build Coastguard Worker 150*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj0EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 151*9880d681SAndroid Build Coastguard Workerentry: 152*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj0EDv4_fET1_S1_S1_ 153*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 154*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 155*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj0EDv4_fET1_S1_S1_ 156*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 157*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 158*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 4> 159*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 160*9880d681SAndroid Build Coastguard Worker} 161*9880d681SAndroid Build Coastguard Worker 162*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj1EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 163*9880d681SAndroid Build Coastguard Workerentry: 164*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj1EDv4_fET1_S1_S1_ 165*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 166*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 167*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj1EDv4_fET1_S1_S1_ 168*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 169*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 12 170*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 5> 171*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 172*9880d681SAndroid Build Coastguard Worker} 173*9880d681SAndroid Build Coastguard Worker 174*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj2EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 175*9880d681SAndroid Build Coastguard Workerentry: 176*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj2EDv4_fET1_S1_S1_ 177*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 178*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 0 179*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj2EDv4_fET1_S1_S1_ 180*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 181*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 182*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 6> 183*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 184*9880d681SAndroid Build Coastguard Worker} 185*9880d681SAndroid Build Coastguard Worker 186*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj3EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) { 187*9880d681SAndroid Build Coastguard Workerentry: 188*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj3EDv4_fET1_S1_S1_ 189*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 190*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 191*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj3EDv4_fET1_S1_S1_ 192*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 193*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 194*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 7> 195*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 196*9880d681SAndroid Build Coastguard Worker} 197*9880d681SAndroid Build Coastguard Worker 198*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj0EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 199*9880d681SAndroid Build Coastguard Workerentry: 200*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj0EDv4_jET1_S1_S1_ 201*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 202*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 203*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj0EDv4_jET1_S1_S1_ 204*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 205*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 206*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 4, i32 1, i32 2, i32 3> 207*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 208*9880d681SAndroid Build Coastguard Worker} 209*9880d681SAndroid Build Coastguard Worker 210*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj1EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 211*9880d681SAndroid Build Coastguard Workerentry: 212*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj1EDv4_jET1_S1_S1_ 213*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 214*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 215*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj1EDv4_jET1_S1_S1_ 216*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 217*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 0 218*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 5, i32 1, i32 2, i32 3> 219*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 220*9880d681SAndroid Build Coastguard Worker} 221*9880d681SAndroid Build Coastguard Worker 222*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj2EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 223*9880d681SAndroid Build Coastguard Workerentry: 224*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj2EDv4_jET1_S1_S1_ 225*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 226*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 12 227*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj2EDv4_jET1_S1_S1_ 228*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 229*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 230*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 6, i32 1, i32 2, i32 3> 231*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 232*9880d681SAndroid Build Coastguard Worker} 233*9880d681SAndroid Build Coastguard Worker 234*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj3EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 235*9880d681SAndroid Build Coastguard Workerentry: 236*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj3EDv4_jET1_S1_S1_ 237*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 238*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 239*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj3EDv4_jET1_S1_S1_ 240*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 241*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 242*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 7, i32 1, i32 2, i32 3> 243*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 244*9880d681SAndroid Build Coastguard Worker} 245*9880d681SAndroid Build Coastguard Worker 246*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj0EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 247*9880d681SAndroid Build Coastguard Workerentry: 248*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj0EDv4_jET1_S1_S1_ 249*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 250*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 251*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj0EDv4_jET1_S1_S1_ 252*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 253*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 254*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 3> 255*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 256*9880d681SAndroid Build Coastguard Worker} 257*9880d681SAndroid Build Coastguard Worker 258*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj1EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 259*9880d681SAndroid Build Coastguard Workerentry: 260*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj1EDv4_jET1_S1_S1_ 261*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 262*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 263*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj1EDv4_jET1_S1_S1_ 264*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 265*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 4 266*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 5, i32 2, i32 3> 267*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 268*9880d681SAndroid Build Coastguard Worker} 269*9880d681SAndroid Build Coastguard Worker 270*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj2EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 271*9880d681SAndroid Build Coastguard Workerentry: 272*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj2EDv4_jET1_S1_S1_ 273*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 274*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 8 275*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj2EDv4_jET1_S1_S1_ 276*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 277*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 278*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 6, i32 2, i32 3> 279*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 280*9880d681SAndroid Build Coastguard Worker} 281*9880d681SAndroid Build Coastguard Worker 282*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj3EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 283*9880d681SAndroid Build Coastguard Workerentry: 284*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj3EDv4_jET1_S1_S1_ 285*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 286*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 287*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj3EDv4_jET1_S1_S1_ 288*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 289*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 290*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 7, i32 2, i32 3> 291*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 292*9880d681SAndroid Build Coastguard Worker} 293*9880d681SAndroid Build Coastguard Worker 294*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj0EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 295*9880d681SAndroid Build Coastguard Workerentry: 296*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj0EDv4_jET1_S1_S1_ 297*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 298*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 299*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj0EDv4_jET1_S1_S1_ 300*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 301*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 302*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 4, i32 3> 303*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 304*9880d681SAndroid Build Coastguard Worker} 305*9880d681SAndroid Build Coastguard Worker 306*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj1EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 307*9880d681SAndroid Build Coastguard Workerentry: 308*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj1EDv4_jET1_S1_S1_ 309*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 310*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 311*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj1EDv4_jET1_S1_S1_ 312*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 313*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 8 314*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 5, i32 3> 315*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 316*9880d681SAndroid Build Coastguard Worker} 317*9880d681SAndroid Build Coastguard Worker 318*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj2EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 319*9880d681SAndroid Build Coastguard Workerentry: 320*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj2EDv4_jET1_S1_S1_ 321*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 322*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 4 323*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj2EDv4_jET1_S1_S1_ 324*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 325*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 326*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 6, i32 3> 327*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 328*9880d681SAndroid Build Coastguard Worker} 329*9880d681SAndroid Build Coastguard Worker 330*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj3EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 331*9880d681SAndroid Build Coastguard Workerentry: 332*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj3EDv4_jET1_S1_S1_ 333*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 334*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 335*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj3EDv4_jET1_S1_S1_ 336*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 337*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 338*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 7, i32 3> 339*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 340*9880d681SAndroid Build Coastguard Worker} 341*9880d681SAndroid Build Coastguard Worker 342*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj0EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 343*9880d681SAndroid Build Coastguard Workerentry: 344*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj0EDv4_jET1_S1_S1_ 345*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 346*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 347*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj0EDv4_jET1_S1_S1_ 348*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 349*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 350*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 4> 351*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 352*9880d681SAndroid Build Coastguard Worker} 353*9880d681SAndroid Build Coastguard Worker 354*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj1EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 355*9880d681SAndroid Build Coastguard Workerentry: 356*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj1EDv4_jET1_S1_S1_ 357*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 358*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 359*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj1EDv4_jET1_S1_S1_ 360*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 361*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 12 362*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 5> 363*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 364*9880d681SAndroid Build Coastguard Worker} 365*9880d681SAndroid Build Coastguard Worker 366*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj2EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 367*9880d681SAndroid Build Coastguard Workerentry: 368*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj2EDv4_jET1_S1_S1_ 369*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 370*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 0 371*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj2EDv4_jET1_S1_S1_ 372*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 373*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 374*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 6> 375*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 376*9880d681SAndroid Build Coastguard Worker} 377*9880d681SAndroid Build Coastguard Worker 378*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj3EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) { 379*9880d681SAndroid Build Coastguard Workerentry: 380*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj3EDv4_jET1_S1_S1_ 381*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 382*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 383*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj3EDv4_jET1_S1_S1_ 384*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 385*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 386*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 7> 387*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 388*9880d681SAndroid Build Coastguard Worker} 389*9880d681SAndroid Build Coastguard Worker 390*9880d681SAndroid Build Coastguard Workerdefine float @_Z13testUiToFpExtILj0EEfDv4_j(<4 x i32> %a) { 391*9880d681SAndroid Build Coastguard Workerentry: 392*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z13testUiToFpExtILj0EEfDv4_j 393*9880d681SAndroid Build Coastguard Worker; CHECK: xxextractuw 0, 34, 12 394*9880d681SAndroid Build Coastguard Worker; CHECK: xscvuxdsp 1, 0 395*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z13testUiToFpExtILj0EEfDv4_j 396*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxextractuw 0, 34, 0 397*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvuxdsp 1, 0 398*9880d681SAndroid Build Coastguard Worker %vecext = extractelement <4 x i32> %a, i32 0 399*9880d681SAndroid Build Coastguard Worker %conv = uitofp i32 %vecext to float 400*9880d681SAndroid Build Coastguard Worker ret float %conv 401*9880d681SAndroid Build Coastguard Worker} 402*9880d681SAndroid Build Coastguard Worker 403*9880d681SAndroid Build Coastguard Workerdefine float @_Z13testUiToFpExtILj1EEfDv4_j(<4 x i32> %a) { 404*9880d681SAndroid Build Coastguard Workerentry: 405*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z13testUiToFpExtILj1EEfDv4_j 406*9880d681SAndroid Build Coastguard Worker; CHECK: xxextractuw 0, 34, 8 407*9880d681SAndroid Build Coastguard Worker; CHECK: xscvuxdsp 1, 0 408*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z13testUiToFpExtILj1EEfDv4_j 409*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxextractuw 0, 34, 4 410*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvuxdsp 1, 0 411*9880d681SAndroid Build Coastguard Worker %vecext = extractelement <4 x i32> %a, i32 1 412*9880d681SAndroid Build Coastguard Worker %conv = uitofp i32 %vecext to float 413*9880d681SAndroid Build Coastguard Worker ret float %conv 414*9880d681SAndroid Build Coastguard Worker} 415*9880d681SAndroid Build Coastguard Worker 416*9880d681SAndroid Build Coastguard Workerdefine float @_Z13testUiToFpExtILj2EEfDv4_j(<4 x i32> %a) { 417*9880d681SAndroid Build Coastguard Workerentry: 418*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z13testUiToFpExtILj2EEfDv4_j 419*9880d681SAndroid Build Coastguard Worker; CHECK: xxextractuw 0, 34, 4 420*9880d681SAndroid Build Coastguard Worker; CHECK: xscvuxdsp 1, 0 421*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z13testUiToFpExtILj2EEfDv4_j 422*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxextractuw 0, 34, 8 423*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvuxdsp 1, 0 424*9880d681SAndroid Build Coastguard Worker %vecext = extractelement <4 x i32> %a, i32 2 425*9880d681SAndroid Build Coastguard Worker %conv = uitofp i32 %vecext to float 426*9880d681SAndroid Build Coastguard Worker ret float %conv 427*9880d681SAndroid Build Coastguard Worker} 428*9880d681SAndroid Build Coastguard Worker 429*9880d681SAndroid Build Coastguard Workerdefine float @_Z13testUiToFpExtILj3EEfDv4_j(<4 x i32> %a) { 430*9880d681SAndroid Build Coastguard Workerentry: 431*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z13testUiToFpExtILj3EEfDv4_j 432*9880d681SAndroid Build Coastguard Worker; CHECK: xxextractuw 0, 34, 0 433*9880d681SAndroid Build Coastguard Worker; CHECK: xscvuxdsp 1, 0 434*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z13testUiToFpExtILj3EEfDv4_j 435*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxextractuw 0, 34, 12 436*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvuxdsp 1, 0 437*9880d681SAndroid Build Coastguard Worker %vecext = extractelement <4 x i32> %a, i32 3 438*9880d681SAndroid Build Coastguard Worker %conv = uitofp i32 %vecext to float 439*9880d681SAndroid Build Coastguard Worker ret float %conv 440*9880d681SAndroid Build Coastguard Worker} 441*9880d681SAndroid Build Coastguard Worker 442*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z10testInsEltILj0EDv4_ffET0_S1_T1_(<4 x float> %a, float %b) { 443*9880d681SAndroid Build Coastguard Workerentry: 444*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj0EDv4_ffET0_S1_T1_ 445*9880d681SAndroid Build Coastguard Worker; CHECK: xscvdpspn 0, 1 446*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 0, 0, 3 447*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 448*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj0EDv4_ffET0_S1_T1_ 449*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvdpspn 0, 1 450*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 0, 0, 3 451*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 452*9880d681SAndroid Build Coastguard Worker %vecins = insertelement <4 x float> %a, float %b, i32 0 453*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 454*9880d681SAndroid Build Coastguard Worker} 455*9880d681SAndroid Build Coastguard Worker 456*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z10testInsEltILj1EDv4_ffET0_S1_T1_(<4 x float> %a, float %b) { 457*9880d681SAndroid Build Coastguard Workerentry: 458*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj1EDv4_ffET0_S1_T1_ 459*9880d681SAndroid Build Coastguard Worker; CHECK: xscvdpspn 0, 1 460*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 0, 0, 3 461*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 462*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj1EDv4_ffET0_S1_T1_ 463*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvdpspn 0, 1 464*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 0, 0, 3 465*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 466*9880d681SAndroid Build Coastguard Worker %vecins = insertelement <4 x float> %a, float %b, i32 1 467*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 468*9880d681SAndroid Build Coastguard Worker} 469*9880d681SAndroid Build Coastguard Worker 470*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z10testInsEltILj2EDv4_ffET0_S1_T1_(<4 x float> %a, float %b) { 471*9880d681SAndroid Build Coastguard Workerentry: 472*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj2EDv4_ffET0_S1_T1_ 473*9880d681SAndroid Build Coastguard Worker; CHECK: xscvdpspn 0, 1 474*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 0, 0, 3 475*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 476*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj2EDv4_ffET0_S1_T1_ 477*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvdpspn 0, 1 478*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 0, 0, 3 479*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 480*9880d681SAndroid Build Coastguard Worker %vecins = insertelement <4 x float> %a, float %b, i32 2 481*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 482*9880d681SAndroid Build Coastguard Worker} 483*9880d681SAndroid Build Coastguard Worker 484*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z10testInsEltILj3EDv4_ffET0_S1_T1_(<4 x float> %a, float %b) { 485*9880d681SAndroid Build Coastguard Workerentry: 486*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj3EDv4_ffET0_S1_T1_ 487*9880d681SAndroid Build Coastguard Worker; CHECK: xscvdpspn 0, 1 488*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 0, 0, 3 489*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 490*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj3EDv4_ffET0_S1_T1_ 491*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvdpspn 0, 1 492*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 0, 0, 3 493*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 494*9880d681SAndroid Build Coastguard Worker %vecins = insertelement <4 x float> %a, float %b, i32 3 495*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 496*9880d681SAndroid Build Coastguard Worker} 497*9880d681SAndroid Build Coastguard Worker 498*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z10testInsEltILj0EDv4_jjET0_S1_T1_(<4 x i32> %a, i32 zeroext %b) { 499*9880d681SAndroid Build Coastguard Workerentry: 500*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj0EDv4_jjET0_S1_T1_ 501*9880d681SAndroid Build Coastguard Worker; CHECK: mtvsrwz 0, 5 502*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 503*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj0EDv4_jjET0_S1_T1_ 504*9880d681SAndroid Build Coastguard Worker; CHECK-BE: mtvsrwz 0, 5 505*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 506*9880d681SAndroid Build Coastguard Worker %vecins = insertelement <4 x i32> %a, i32 %b, i32 0 507*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 508*9880d681SAndroid Build Coastguard Worker} 509*9880d681SAndroid Build Coastguard Worker 510*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z10testInsEltILj1EDv4_jjET0_S1_T1_(<4 x i32> %a, i32 zeroext %b) { 511*9880d681SAndroid Build Coastguard Workerentry: 512*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj1EDv4_jjET0_S1_T1_ 513*9880d681SAndroid Build Coastguard Worker; CHECK: mtvsrwz 0, 5 514*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 515*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj1EDv4_jjET0_S1_T1_ 516*9880d681SAndroid Build Coastguard Worker; CHECK-BE: mtvsrwz 0, 5 517*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 518*9880d681SAndroid Build Coastguard Worker %vecins = insertelement <4 x i32> %a, i32 %b, i32 1 519*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 520*9880d681SAndroid Build Coastguard Worker} 521*9880d681SAndroid Build Coastguard Worker 522*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z10testInsEltILj2EDv4_jjET0_S1_T1_(<4 x i32> %a, i32 zeroext %b) { 523*9880d681SAndroid Build Coastguard Workerentry: 524*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj2EDv4_jjET0_S1_T1_ 525*9880d681SAndroid Build Coastguard Worker; CHECK: mtvsrwz 0, 5 526*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 527*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj2EDv4_jjET0_S1_T1_ 528*9880d681SAndroid Build Coastguard Worker; CHECK-BE: mtvsrwz 0, 5 529*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 530*9880d681SAndroid Build Coastguard Worker %vecins = insertelement <4 x i32> %a, i32 %b, i32 2 531*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 532*9880d681SAndroid Build Coastguard Worker} 533*9880d681SAndroid Build Coastguard Worker 534*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z10testInsEltILj3EDv4_jjET0_S1_T1_(<4 x i32> %a, i32 zeroext %b) { 535*9880d681SAndroid Build Coastguard Workerentry: 536*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj3EDv4_jjET0_S1_T1_ 537*9880d681SAndroid Build Coastguard Worker; CHECK: mtvsrwz 0, 5 538*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 539*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj3EDv4_jjET0_S1_T1_ 540*9880d681SAndroid Build Coastguard Worker; CHECK-BE: mtvsrwz 0, 5 541*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 542*9880d681SAndroid Build Coastguard Worker %vecins = insertelement <4 x i32> %a, i32 %b, i32 3 543*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 544*9880d681SAndroid Build Coastguard Worker} 545*9880d681SAndroid Build Coastguard Worker 546*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj0EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 547*9880d681SAndroid Build Coastguard Workerentry: 548*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj0EDv4_fET1_S1_S1_ 549*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 550*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 551*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj0EDv4_fET1_S1_S1_ 552*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 553*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 554*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 0, i32 5, i32 6, i32 7> 555*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 556*9880d681SAndroid Build Coastguard Worker} 557*9880d681SAndroid Build Coastguard Worker 558*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj1EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 559*9880d681SAndroid Build Coastguard Workerentry: 560*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj1EDv4_fET1_S1_S1_ 561*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 562*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 563*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj1EDv4_fET1_S1_S1_ 564*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 565*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 0 566*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 1, i32 5, i32 6, i32 7> 567*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 568*9880d681SAndroid Build Coastguard Worker} 569*9880d681SAndroid Build Coastguard Worker 570*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj2EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 571*9880d681SAndroid Build Coastguard Workerentry: 572*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj2EDv4_fET1_S1_S1_ 573*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 574*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 12 575*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj2EDv4_fET1_S1_S1_ 576*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 577*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 578*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 2, i32 5, i32 6, i32 7> 579*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 580*9880d681SAndroid Build Coastguard Worker} 581*9880d681SAndroid Build Coastguard Worker 582*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj3EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 583*9880d681SAndroid Build Coastguard Workerentry: 584*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj3EDv4_fET1_S1_S1_ 585*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 586*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 587*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj3EDv4_fET1_S1_S1_ 588*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 589*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 590*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 3, i32 5, i32 6, i32 7> 591*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 592*9880d681SAndroid Build Coastguard Worker} 593*9880d681SAndroid Build Coastguard Worker 594*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj0EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 595*9880d681SAndroid Build Coastguard Workerentry: 596*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj0EDv4_fET1_S1_S1_ 597*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 598*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 599*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj0EDv4_fET1_S1_S1_ 600*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 601*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 602*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 0, i32 6, i32 7> 603*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 604*9880d681SAndroid Build Coastguard Worker} 605*9880d681SAndroid Build Coastguard Worker 606*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj1EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 607*9880d681SAndroid Build Coastguard Workerentry: 608*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj1EDv4_fET1_S1_S1_ 609*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 610*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 611*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj1EDv4_fET1_S1_S1_ 612*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 613*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 4 614*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 1, i32 6, i32 7> 615*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 616*9880d681SAndroid Build Coastguard Worker} 617*9880d681SAndroid Build Coastguard Worker 618*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj2EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 619*9880d681SAndroid Build Coastguard Workerentry: 620*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj2EDv4_fET1_S1_S1_ 621*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 622*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 8 623*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj2EDv4_fET1_S1_S1_ 624*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 625*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 626*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 2, i32 6, i32 7> 627*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 628*9880d681SAndroid Build Coastguard Worker} 629*9880d681SAndroid Build Coastguard Worker 630*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj3EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 631*9880d681SAndroid Build Coastguard Workerentry: 632*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj3EDv4_fET1_S1_S1_ 633*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 634*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 635*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj3EDv4_fET1_S1_S1_ 636*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 637*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 638*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 3, i32 6, i32 7> 639*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 640*9880d681SAndroid Build Coastguard Worker} 641*9880d681SAndroid Build Coastguard Worker 642*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj0EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 643*9880d681SAndroid Build Coastguard Workerentry: 644*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj0EDv4_fET1_S1_S1_ 645*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 646*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 647*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj0EDv4_fET1_S1_S1_ 648*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 649*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 650*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 0, i32 7> 651*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 652*9880d681SAndroid Build Coastguard Worker} 653*9880d681SAndroid Build Coastguard Worker 654*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj1EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 655*9880d681SAndroid Build Coastguard Workerentry: 656*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj1EDv4_fET1_S1_S1_ 657*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 658*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 659*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj1EDv4_fET1_S1_S1_ 660*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 661*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 8 662*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 1, i32 7> 663*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 664*9880d681SAndroid Build Coastguard Worker} 665*9880d681SAndroid Build Coastguard Worker 666*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj2EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 667*9880d681SAndroid Build Coastguard Workerentry: 668*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj2EDv4_fET1_S1_S1_ 669*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 670*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 4 671*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj2EDv4_fET1_S1_S1_ 672*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 673*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 674*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 2, i32 7> 675*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 676*9880d681SAndroid Build Coastguard Worker} 677*9880d681SAndroid Build Coastguard Worker 678*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj3EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 679*9880d681SAndroid Build Coastguard Workerentry: 680*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj3EDv4_fET1_S1_S1_ 681*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 682*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 683*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj3EDv4_fET1_S1_S1_ 684*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 685*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 686*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 3, i32 7> 687*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 688*9880d681SAndroid Build Coastguard Worker} 689*9880d681SAndroid Build Coastguard Worker 690*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj0EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 691*9880d681SAndroid Build Coastguard Workerentry: 692*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj0EDv4_fET1_S1_S1_ 693*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 694*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 695*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj0EDv4_fET1_S1_S1_ 696*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 697*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 698*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 0> 699*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 700*9880d681SAndroid Build Coastguard Worker} 701*9880d681SAndroid Build Coastguard Worker 702*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj1EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 703*9880d681SAndroid Build Coastguard Workerentry: 704*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj1EDv4_fET1_S1_S1_ 705*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 706*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 707*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj1EDv4_fET1_S1_S1_ 708*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 709*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 12 710*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 1> 711*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 712*9880d681SAndroid Build Coastguard Worker} 713*9880d681SAndroid Build Coastguard Worker 714*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj2EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 715*9880d681SAndroid Build Coastguard Workerentry: 716*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj2EDv4_fET1_S1_S1_ 717*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 718*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 0 719*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj2EDv4_fET1_S1_S1_ 720*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 721*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 722*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 2> 723*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 724*9880d681SAndroid Build Coastguard Worker} 725*9880d681SAndroid Build Coastguard Worker 726*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj3EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) { 727*9880d681SAndroid Build Coastguard Workerentry: 728*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj3EDv4_fET1_S1_S1_ 729*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 730*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 731*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj3EDv4_fET1_S1_S1_ 732*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 733*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 734*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 3> 735*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 736*9880d681SAndroid Build Coastguard Worker} 737*9880d681SAndroid Build Coastguard Worker 738*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj0EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 739*9880d681SAndroid Build Coastguard Workerentry: 740*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj0EDv4_jET1_S1_S1_ 741*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 742*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 743*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj0EDv4_jET1_S1_S1_ 744*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 745*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 746*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 0, i32 5, i32 6, i32 7> 747*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 748*9880d681SAndroid Build Coastguard Worker} 749*9880d681SAndroid Build Coastguard Worker 750*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj1EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 751*9880d681SAndroid Build Coastguard Workerentry: 752*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj1EDv4_jET1_S1_S1_ 753*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 754*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 755*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj1EDv4_jET1_S1_S1_ 756*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 757*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 0 758*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 1, i32 5, i32 6, i32 7> 759*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 760*9880d681SAndroid Build Coastguard Worker} 761*9880d681SAndroid Build Coastguard Worker 762*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj2EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 763*9880d681SAndroid Build Coastguard Workerentry: 764*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj2EDv4_jET1_S1_S1_ 765*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 766*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 12 767*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj2EDv4_jET1_S1_S1_ 768*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 769*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 770*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 2, i32 5, i32 6, i32 7> 771*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 772*9880d681SAndroid Build Coastguard Worker} 773*9880d681SAndroid Build Coastguard Worker 774*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj3EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 775*9880d681SAndroid Build Coastguard Workerentry: 776*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj3EDv4_jET1_S1_S1_ 777*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 778*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12 779*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj3EDv4_jET1_S1_S1_ 780*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 781*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0 782*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 3, i32 5, i32 6, i32 7> 783*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 784*9880d681SAndroid Build Coastguard Worker} 785*9880d681SAndroid Build Coastguard Worker 786*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj0EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 787*9880d681SAndroid Build Coastguard Workerentry: 788*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj0EDv4_jET1_S1_S1_ 789*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 790*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 791*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj0EDv4_jET1_S1_S1_ 792*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 793*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 794*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 0, i32 6, i32 7> 795*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 796*9880d681SAndroid Build Coastguard Worker} 797*9880d681SAndroid Build Coastguard Worker 798*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj1EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 799*9880d681SAndroid Build Coastguard Workerentry: 800*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj1EDv4_jET1_S1_S1_ 801*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 802*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 803*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj1EDv4_jET1_S1_S1_ 804*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 805*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 4 806*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 1, i32 6, i32 7> 807*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 808*9880d681SAndroid Build Coastguard Worker} 809*9880d681SAndroid Build Coastguard Worker 810*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj2EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 811*9880d681SAndroid Build Coastguard Workerentry: 812*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj2EDv4_jET1_S1_S1_ 813*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 814*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 8 815*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj2EDv4_jET1_S1_S1_ 816*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 817*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 818*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 2, i32 6, i32 7> 819*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 820*9880d681SAndroid Build Coastguard Worker} 821*9880d681SAndroid Build Coastguard Worker 822*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj3EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 823*9880d681SAndroid Build Coastguard Workerentry: 824*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj3EDv4_jET1_S1_S1_ 825*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 826*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8 827*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj3EDv4_jET1_S1_S1_ 828*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 829*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4 830*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 3, i32 6, i32 7> 831*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 832*9880d681SAndroid Build Coastguard Worker} 833*9880d681SAndroid Build Coastguard Worker 834*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj0EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 835*9880d681SAndroid Build Coastguard Workerentry: 836*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj0EDv4_jET1_S1_S1_ 837*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 838*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 839*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj0EDv4_jET1_S1_S1_ 840*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 841*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 842*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 0, i32 7> 843*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 844*9880d681SAndroid Build Coastguard Worker} 845*9880d681SAndroid Build Coastguard Worker 846*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj1EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 847*9880d681SAndroid Build Coastguard Workerentry: 848*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj1EDv4_jET1_S1_S1_ 849*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 850*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 851*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj1EDv4_jET1_S1_S1_ 852*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 853*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 8 854*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 1, i32 7> 855*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 856*9880d681SAndroid Build Coastguard Worker} 857*9880d681SAndroid Build Coastguard Worker 858*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj2EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 859*9880d681SAndroid Build Coastguard Workerentry: 860*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj2EDv4_jET1_S1_S1_ 861*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 862*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 4 863*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj2EDv4_jET1_S1_S1_ 864*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 865*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 866*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 2, i32 7> 867*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 868*9880d681SAndroid Build Coastguard Worker} 869*9880d681SAndroid Build Coastguard Worker 870*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj3EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 871*9880d681SAndroid Build Coastguard Workerentry: 872*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj3EDv4_jET1_S1_S1_ 873*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 874*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4 875*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj3EDv4_jET1_S1_S1_ 876*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 877*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8 878*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 3, i32 7> 879*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 880*9880d681SAndroid Build Coastguard Worker} 881*9880d681SAndroid Build Coastguard Worker 882*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj0EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 883*9880d681SAndroid Build Coastguard Workerentry: 884*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj0EDv4_jET1_S1_S1_ 885*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2 886*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 887*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj0EDv4_jET1_S1_S1_ 888*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3 889*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 890*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 0> 891*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 892*9880d681SAndroid Build Coastguard Worker} 893*9880d681SAndroid Build Coastguard Worker 894*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj1EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 895*9880d681SAndroid Build Coastguard Workerentry: 896*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj1EDv4_jET1_S1_S1_ 897*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1 898*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 899*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj1EDv4_jET1_S1_S1_ 900*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi 901*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 12 902*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 1> 903*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 904*9880d681SAndroid Build Coastguard Worker} 905*9880d681SAndroid Build Coastguard Worker 906*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj2EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 907*9880d681SAndroid Build Coastguard Workerentry: 908*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj2EDv4_jET1_S1_S1_ 909*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi 910*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 0 911*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj2EDv4_jET1_S1_S1_ 912*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1 913*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 914*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 2> 915*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 916*9880d681SAndroid Build Coastguard Worker} 917*9880d681SAndroid Build Coastguard Worker 918*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj3EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) { 919*9880d681SAndroid Build Coastguard Workerentry: 920*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj3EDv4_jET1_S1_S1_ 921*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3 922*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0 923*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj3EDv4_jET1_S1_S1_ 924*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2 925*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12 926*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 3> 927*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %vecins 928*9880d681SAndroid Build Coastguard Worker} 929*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @testSameVecEl0BE(<4 x float> %a) { 930*9880d681SAndroid Build Coastguard Workerentry: 931*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: testSameVecEl0BE 932*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 34, 0 933*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 5, i32 1, i32 2, i32 3> 934*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 935*9880d681SAndroid Build Coastguard Worker} 936*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @testSameVecEl2BE(<4 x float> %a) { 937*9880d681SAndroid Build Coastguard Workerentry: 938*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: testSameVecEl2BE 939*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 34, 8 940*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 0, i32 1, i32 5, i32 3> 941*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 942*9880d681SAndroid Build Coastguard Worker} 943*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @testSameVecEl3BE(<4 x float> %a) { 944*9880d681SAndroid Build Coastguard Workerentry: 945*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: testSameVecEl3BE 946*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 34, 12 947*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 0, i32 1, i32 2, i32 5> 948*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 949*9880d681SAndroid Build Coastguard Worker} 950*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @testSameVecEl0LE(<4 x float> %a) { 951*9880d681SAndroid Build Coastguard Workerentry: 952*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testSameVecEl0LE 953*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 34, 12 954*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 6, i32 1, i32 2, i32 3> 955*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 956*9880d681SAndroid Build Coastguard Worker} 957*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @testSameVecEl1LE(<4 x float> %a) { 958*9880d681SAndroid Build Coastguard Workerentry: 959*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testSameVecEl1LE 960*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 34, 8 961*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 0, i32 6, i32 2, i32 3> 962*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 963*9880d681SAndroid Build Coastguard Worker} 964*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @testSameVecEl3LE(<4 x float> %a) { 965*9880d681SAndroid Build Coastguard Workerentry: 966*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testSameVecEl3LE 967*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 34, 0 968*9880d681SAndroid Build Coastguard Worker %vecins = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 0, i32 1, i32 2, i32 6> 969*9880d681SAndroid Build Coastguard Worker ret <4 x float> %vecins 970*9880d681SAndroid Build Coastguard Worker} 971