1*9880d681SAndroid Build Coastguard Worker; Test spilling of vector registers. 2*9880d681SAndroid Build Coastguard Worker; 3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker; We need to allocate a 16-byte spill slot and save the 8 call-saved FPRs. 6*9880d681SAndroid Build Coastguard Worker; The frame size should be exactly 160 + 16 + 8 * 8 = 240. 7*9880d681SAndroid Build Coastguard Workerdefine void @f1(<16 x i8> *%ptr) { 8*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f1: 9*9880d681SAndroid Build Coastguard Worker; CHECK: aghi %r15, -240 10*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f8, 11*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f9, 12*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f10, 13*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f11, 14*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f12, 15*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f13, 16*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f14, 17*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f15, 18*9880d681SAndroid Build Coastguard Worker; CHECK: vst {{%v[0-9]+}}, 160(%r15) 19*9880d681SAndroid Build Coastguard Worker; CHECK: vl {{%v[0-9]+}}, 160(%r15) 20*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f8, 21*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f9, 22*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f10, 23*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f11, 24*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f12, 25*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f13, 26*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f14, 27*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f15, 28*9880d681SAndroid Build Coastguard Worker; CHECK: aghi %r15, 240 29*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 30*9880d681SAndroid Build Coastguard Worker %v0 = load volatile <16 x i8>, <16 x i8> *%ptr 31*9880d681SAndroid Build Coastguard Worker %v1 = load volatile <16 x i8>, <16 x i8> *%ptr 32*9880d681SAndroid Build Coastguard Worker %v2 = load volatile <16 x i8>, <16 x i8> *%ptr 33*9880d681SAndroid Build Coastguard Worker %v3 = load volatile <16 x i8>, <16 x i8> *%ptr 34*9880d681SAndroid Build Coastguard Worker %v4 = load volatile <16 x i8>, <16 x i8> *%ptr 35*9880d681SAndroid Build Coastguard Worker %v5 = load volatile <16 x i8>, <16 x i8> *%ptr 36*9880d681SAndroid Build Coastguard Worker %v6 = load volatile <16 x i8>, <16 x i8> *%ptr 37*9880d681SAndroid Build Coastguard Worker %v7 = load volatile <16 x i8>, <16 x i8> *%ptr 38*9880d681SAndroid Build Coastguard Worker %v8 = load volatile <16 x i8>, <16 x i8> *%ptr 39*9880d681SAndroid Build Coastguard Worker %v9 = load volatile <16 x i8>, <16 x i8> *%ptr 40*9880d681SAndroid Build Coastguard Worker %v10 = load volatile <16 x i8>, <16 x i8> *%ptr 41*9880d681SAndroid Build Coastguard Worker %v11 = load volatile <16 x i8>, <16 x i8> *%ptr 42*9880d681SAndroid Build Coastguard Worker %v12 = load volatile <16 x i8>, <16 x i8> *%ptr 43*9880d681SAndroid Build Coastguard Worker %v13 = load volatile <16 x i8>, <16 x i8> *%ptr 44*9880d681SAndroid Build Coastguard Worker %v14 = load volatile <16 x i8>, <16 x i8> *%ptr 45*9880d681SAndroid Build Coastguard Worker %v15 = load volatile <16 x i8>, <16 x i8> *%ptr 46*9880d681SAndroid Build Coastguard Worker %v16 = load volatile <16 x i8>, <16 x i8> *%ptr 47*9880d681SAndroid Build Coastguard Worker %v17 = load volatile <16 x i8>, <16 x i8> *%ptr 48*9880d681SAndroid Build Coastguard Worker %v18 = load volatile <16 x i8>, <16 x i8> *%ptr 49*9880d681SAndroid Build Coastguard Worker %v19 = load volatile <16 x i8>, <16 x i8> *%ptr 50*9880d681SAndroid Build Coastguard Worker %v20 = load volatile <16 x i8>, <16 x i8> *%ptr 51*9880d681SAndroid Build Coastguard Worker %v21 = load volatile <16 x i8>, <16 x i8> *%ptr 52*9880d681SAndroid Build Coastguard Worker %v22 = load volatile <16 x i8>, <16 x i8> *%ptr 53*9880d681SAndroid Build Coastguard Worker %v23 = load volatile <16 x i8>, <16 x i8> *%ptr 54*9880d681SAndroid Build Coastguard Worker %v24 = load volatile <16 x i8>, <16 x i8> *%ptr 55*9880d681SAndroid Build Coastguard Worker %v25 = load volatile <16 x i8>, <16 x i8> *%ptr 56*9880d681SAndroid Build Coastguard Worker %v26 = load volatile <16 x i8>, <16 x i8> *%ptr 57*9880d681SAndroid Build Coastguard Worker %v27 = load volatile <16 x i8>, <16 x i8> *%ptr 58*9880d681SAndroid Build Coastguard Worker %v28 = load volatile <16 x i8>, <16 x i8> *%ptr 59*9880d681SAndroid Build Coastguard Worker %v29 = load volatile <16 x i8>, <16 x i8> *%ptr 60*9880d681SAndroid Build Coastguard Worker %v30 = load volatile <16 x i8>, <16 x i8> *%ptr 61*9880d681SAndroid Build Coastguard Worker %v31 = load volatile <16 x i8>, <16 x i8> *%ptr 62*9880d681SAndroid Build Coastguard Worker %vx = load volatile <16 x i8>, <16 x i8> *%ptr 63*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %vx, <16 x i8> *%ptr 64*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v31, <16 x i8> *%ptr 65*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v30, <16 x i8> *%ptr 66*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v29, <16 x i8> *%ptr 67*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v28, <16 x i8> *%ptr 68*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v27, <16 x i8> *%ptr 69*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v26, <16 x i8> *%ptr 70*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v25, <16 x i8> *%ptr 71*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v24, <16 x i8> *%ptr 72*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v23, <16 x i8> *%ptr 73*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v22, <16 x i8> *%ptr 74*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v21, <16 x i8> *%ptr 75*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v20, <16 x i8> *%ptr 76*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v19, <16 x i8> *%ptr 77*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v18, <16 x i8> *%ptr 78*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v17, <16 x i8> *%ptr 79*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v16, <16 x i8> *%ptr 80*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v15, <16 x i8> *%ptr 81*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v14, <16 x i8> *%ptr 82*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v13, <16 x i8> *%ptr 83*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v12, <16 x i8> *%ptr 84*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v11, <16 x i8> *%ptr 85*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v10, <16 x i8> *%ptr 86*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v9, <16 x i8> *%ptr 87*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v8, <16 x i8> *%ptr 88*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v7, <16 x i8> *%ptr 89*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v6, <16 x i8> *%ptr 90*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v5, <16 x i8> *%ptr 91*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v4, <16 x i8> *%ptr 92*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v3, <16 x i8> *%ptr 93*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v2, <16 x i8> *%ptr 94*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v1, <16 x i8> *%ptr 95*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v0, <16 x i8> *%ptr 96*9880d681SAndroid Build Coastguard Worker ret void 97*9880d681SAndroid Build Coastguard Worker} 98*9880d681SAndroid Build Coastguard Worker 99*9880d681SAndroid Build Coastguard Worker; Like f1, but no 16-byte slot should be needed. 100*9880d681SAndroid Build Coastguard Workerdefine void @f2(<16 x i8> *%ptr) { 101*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f2: 102*9880d681SAndroid Build Coastguard Worker; CHECK: aghi %r15, -224 103*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f8, 104*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f9, 105*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f10, 106*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f11, 107*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f12, 108*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f13, 109*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f14, 110*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f15, 111*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vst {{.*}}(%r15) 112*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vl {{.*}}(%r15) 113*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f8, 114*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f9, 115*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f10, 116*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f11, 117*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f12, 118*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f13, 119*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f14, 120*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f15, 121*9880d681SAndroid Build Coastguard Worker; CHECK: aghi %r15, 224 122*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 123*9880d681SAndroid Build Coastguard Worker %v0 = load volatile <16 x i8>, <16 x i8> *%ptr 124*9880d681SAndroid Build Coastguard Worker %v1 = load volatile <16 x i8>, <16 x i8> *%ptr 125*9880d681SAndroid Build Coastguard Worker %v2 = load volatile <16 x i8>, <16 x i8> *%ptr 126*9880d681SAndroid Build Coastguard Worker %v3 = load volatile <16 x i8>, <16 x i8> *%ptr 127*9880d681SAndroid Build Coastguard Worker %v4 = load volatile <16 x i8>, <16 x i8> *%ptr 128*9880d681SAndroid Build Coastguard Worker %v5 = load volatile <16 x i8>, <16 x i8> *%ptr 129*9880d681SAndroid Build Coastguard Worker %v6 = load volatile <16 x i8>, <16 x i8> *%ptr 130*9880d681SAndroid Build Coastguard Worker %v7 = load volatile <16 x i8>, <16 x i8> *%ptr 131*9880d681SAndroid Build Coastguard Worker %v8 = load volatile <16 x i8>, <16 x i8> *%ptr 132*9880d681SAndroid Build Coastguard Worker %v9 = load volatile <16 x i8>, <16 x i8> *%ptr 133*9880d681SAndroid Build Coastguard Worker %v10 = load volatile <16 x i8>, <16 x i8> *%ptr 134*9880d681SAndroid Build Coastguard Worker %v11 = load volatile <16 x i8>, <16 x i8> *%ptr 135*9880d681SAndroid Build Coastguard Worker %v12 = load volatile <16 x i8>, <16 x i8> *%ptr 136*9880d681SAndroid Build Coastguard Worker %v13 = load volatile <16 x i8>, <16 x i8> *%ptr 137*9880d681SAndroid Build Coastguard Worker %v14 = load volatile <16 x i8>, <16 x i8> *%ptr 138*9880d681SAndroid Build Coastguard Worker %v15 = load volatile <16 x i8>, <16 x i8> *%ptr 139*9880d681SAndroid Build Coastguard Worker %v16 = load volatile <16 x i8>, <16 x i8> *%ptr 140*9880d681SAndroid Build Coastguard Worker %v17 = load volatile <16 x i8>, <16 x i8> *%ptr 141*9880d681SAndroid Build Coastguard Worker %v18 = load volatile <16 x i8>, <16 x i8> *%ptr 142*9880d681SAndroid Build Coastguard Worker %v19 = load volatile <16 x i8>, <16 x i8> *%ptr 143*9880d681SAndroid Build Coastguard Worker %v20 = load volatile <16 x i8>, <16 x i8> *%ptr 144*9880d681SAndroid Build Coastguard Worker %v21 = load volatile <16 x i8>, <16 x i8> *%ptr 145*9880d681SAndroid Build Coastguard Worker %v22 = load volatile <16 x i8>, <16 x i8> *%ptr 146*9880d681SAndroid Build Coastguard Worker %v23 = load volatile <16 x i8>, <16 x i8> *%ptr 147*9880d681SAndroid Build Coastguard Worker %v24 = load volatile <16 x i8>, <16 x i8> *%ptr 148*9880d681SAndroid Build Coastguard Worker %v25 = load volatile <16 x i8>, <16 x i8> *%ptr 149*9880d681SAndroid Build Coastguard Worker %v26 = load volatile <16 x i8>, <16 x i8> *%ptr 150*9880d681SAndroid Build Coastguard Worker %v27 = load volatile <16 x i8>, <16 x i8> *%ptr 151*9880d681SAndroid Build Coastguard Worker %v28 = load volatile <16 x i8>, <16 x i8> *%ptr 152*9880d681SAndroid Build Coastguard Worker %v29 = load volatile <16 x i8>, <16 x i8> *%ptr 153*9880d681SAndroid Build Coastguard Worker %v30 = load volatile <16 x i8>, <16 x i8> *%ptr 154*9880d681SAndroid Build Coastguard Worker %v31 = load volatile <16 x i8>, <16 x i8> *%ptr 155*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v31, <16 x i8> *%ptr 156*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v30, <16 x i8> *%ptr 157*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v29, <16 x i8> *%ptr 158*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v28, <16 x i8> *%ptr 159*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v27, <16 x i8> *%ptr 160*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v26, <16 x i8> *%ptr 161*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v25, <16 x i8> *%ptr 162*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v24, <16 x i8> *%ptr 163*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v23, <16 x i8> *%ptr 164*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v22, <16 x i8> *%ptr 165*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v21, <16 x i8> *%ptr 166*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v20, <16 x i8> *%ptr 167*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v19, <16 x i8> *%ptr 168*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v18, <16 x i8> *%ptr 169*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v17, <16 x i8> *%ptr 170*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v16, <16 x i8> *%ptr 171*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v15, <16 x i8> *%ptr 172*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v14, <16 x i8> *%ptr 173*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v13, <16 x i8> *%ptr 174*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v12, <16 x i8> *%ptr 175*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v11, <16 x i8> *%ptr 176*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v10, <16 x i8> *%ptr 177*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v9, <16 x i8> *%ptr 178*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v8, <16 x i8> *%ptr 179*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v7, <16 x i8> *%ptr 180*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v6, <16 x i8> *%ptr 181*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v5, <16 x i8> *%ptr 182*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v4, <16 x i8> *%ptr 183*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v3, <16 x i8> *%ptr 184*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v2, <16 x i8> *%ptr 185*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v1, <16 x i8> *%ptr 186*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v0, <16 x i8> *%ptr 187*9880d681SAndroid Build Coastguard Worker ret void 188*9880d681SAndroid Build Coastguard Worker} 189*9880d681SAndroid Build Coastguard Worker 190*9880d681SAndroid Build Coastguard Worker; Like f2, but only %f8 should be saved. 191*9880d681SAndroid Build Coastguard Workerdefine void @f3(<16 x i8> *%ptr) { 192*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f3: 193*9880d681SAndroid Build Coastguard Worker; CHECK: aghi %r15, -168 194*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: std %f8, 195*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vst {{.*}}(%r15) 196*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vl {{.*}}(%r15) 197*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: %v9 198*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: %v10 199*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: %v11 200*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: %v12 201*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: %v13 202*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: %v14 203*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: %v15 204*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld %f8, 205*9880d681SAndroid Build Coastguard Worker; CHECK: aghi %r15, 168 206*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 207*9880d681SAndroid Build Coastguard Worker %v0 = load volatile <16 x i8>, <16 x i8> *%ptr 208*9880d681SAndroid Build Coastguard Worker %v1 = load volatile <16 x i8>, <16 x i8> *%ptr 209*9880d681SAndroid Build Coastguard Worker %v2 = load volatile <16 x i8>, <16 x i8> *%ptr 210*9880d681SAndroid Build Coastguard Worker %v3 = load volatile <16 x i8>, <16 x i8> *%ptr 211*9880d681SAndroid Build Coastguard Worker %v4 = load volatile <16 x i8>, <16 x i8> *%ptr 212*9880d681SAndroid Build Coastguard Worker %v5 = load volatile <16 x i8>, <16 x i8> *%ptr 213*9880d681SAndroid Build Coastguard Worker %v6 = load volatile <16 x i8>, <16 x i8> *%ptr 214*9880d681SAndroid Build Coastguard Worker %v7 = load volatile <16 x i8>, <16 x i8> *%ptr 215*9880d681SAndroid Build Coastguard Worker %v8 = load volatile <16 x i8>, <16 x i8> *%ptr 216*9880d681SAndroid Build Coastguard Worker %v16 = load volatile <16 x i8>, <16 x i8> *%ptr 217*9880d681SAndroid Build Coastguard Worker %v17 = load volatile <16 x i8>, <16 x i8> *%ptr 218*9880d681SAndroid Build Coastguard Worker %v18 = load volatile <16 x i8>, <16 x i8> *%ptr 219*9880d681SAndroid Build Coastguard Worker %v19 = load volatile <16 x i8>, <16 x i8> *%ptr 220*9880d681SAndroid Build Coastguard Worker %v20 = load volatile <16 x i8>, <16 x i8> *%ptr 221*9880d681SAndroid Build Coastguard Worker %v21 = load volatile <16 x i8>, <16 x i8> *%ptr 222*9880d681SAndroid Build Coastguard Worker %v22 = load volatile <16 x i8>, <16 x i8> *%ptr 223*9880d681SAndroid Build Coastguard Worker %v23 = load volatile <16 x i8>, <16 x i8> *%ptr 224*9880d681SAndroid Build Coastguard Worker %v24 = load volatile <16 x i8>, <16 x i8> *%ptr 225*9880d681SAndroid Build Coastguard Worker %v25 = load volatile <16 x i8>, <16 x i8> *%ptr 226*9880d681SAndroid Build Coastguard Worker %v26 = load volatile <16 x i8>, <16 x i8> *%ptr 227*9880d681SAndroid Build Coastguard Worker %v27 = load volatile <16 x i8>, <16 x i8> *%ptr 228*9880d681SAndroid Build Coastguard Worker %v28 = load volatile <16 x i8>, <16 x i8> *%ptr 229*9880d681SAndroid Build Coastguard Worker %v29 = load volatile <16 x i8>, <16 x i8> *%ptr 230*9880d681SAndroid Build Coastguard Worker %v30 = load volatile <16 x i8>, <16 x i8> *%ptr 231*9880d681SAndroid Build Coastguard Worker %v31 = load volatile <16 x i8>, <16 x i8> *%ptr 232*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v31, <16 x i8> *%ptr 233*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v30, <16 x i8> *%ptr 234*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v29, <16 x i8> *%ptr 235*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v28, <16 x i8> *%ptr 236*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v27, <16 x i8> *%ptr 237*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v26, <16 x i8> *%ptr 238*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v25, <16 x i8> *%ptr 239*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v24, <16 x i8> *%ptr 240*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v23, <16 x i8> *%ptr 241*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v22, <16 x i8> *%ptr 242*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v21, <16 x i8> *%ptr 243*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v20, <16 x i8> *%ptr 244*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v19, <16 x i8> *%ptr 245*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v18, <16 x i8> *%ptr 246*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v17, <16 x i8> *%ptr 247*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v16, <16 x i8> *%ptr 248*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v8, <16 x i8> *%ptr 249*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v7, <16 x i8> *%ptr 250*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v6, <16 x i8> *%ptr 251*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v5, <16 x i8> *%ptr 252*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v4, <16 x i8> *%ptr 253*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v3, <16 x i8> *%ptr 254*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v2, <16 x i8> *%ptr 255*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v1, <16 x i8> *%ptr 256*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v0, <16 x i8> *%ptr 257*9880d681SAndroid Build Coastguard Worker ret void 258*9880d681SAndroid Build Coastguard Worker} 259*9880d681SAndroid Build Coastguard Worker 260*9880d681SAndroid Build Coastguard Worker; Like f2, but no registers should be saved. 261*9880d681SAndroid Build Coastguard Workerdefine void @f4(<16 x i8> *%ptr) { 262*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f4: 263*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: %r15 264*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 265*9880d681SAndroid Build Coastguard Worker %v0 = load volatile <16 x i8>, <16 x i8> *%ptr 266*9880d681SAndroid Build Coastguard Worker %v1 = load volatile <16 x i8>, <16 x i8> *%ptr 267*9880d681SAndroid Build Coastguard Worker %v2 = load volatile <16 x i8>, <16 x i8> *%ptr 268*9880d681SAndroid Build Coastguard Worker %v3 = load volatile <16 x i8>, <16 x i8> *%ptr 269*9880d681SAndroid Build Coastguard Worker %v4 = load volatile <16 x i8>, <16 x i8> *%ptr 270*9880d681SAndroid Build Coastguard Worker %v5 = load volatile <16 x i8>, <16 x i8> *%ptr 271*9880d681SAndroid Build Coastguard Worker %v6 = load volatile <16 x i8>, <16 x i8> *%ptr 272*9880d681SAndroid Build Coastguard Worker %v7 = load volatile <16 x i8>, <16 x i8> *%ptr 273*9880d681SAndroid Build Coastguard Worker %v16 = load volatile <16 x i8>, <16 x i8> *%ptr 274*9880d681SAndroid Build Coastguard Worker %v17 = load volatile <16 x i8>, <16 x i8> *%ptr 275*9880d681SAndroid Build Coastguard Worker %v18 = load volatile <16 x i8>, <16 x i8> *%ptr 276*9880d681SAndroid Build Coastguard Worker %v19 = load volatile <16 x i8>, <16 x i8> *%ptr 277*9880d681SAndroid Build Coastguard Worker %v20 = load volatile <16 x i8>, <16 x i8> *%ptr 278*9880d681SAndroid Build Coastguard Worker %v21 = load volatile <16 x i8>, <16 x i8> *%ptr 279*9880d681SAndroid Build Coastguard Worker %v22 = load volatile <16 x i8>, <16 x i8> *%ptr 280*9880d681SAndroid Build Coastguard Worker %v23 = load volatile <16 x i8>, <16 x i8> *%ptr 281*9880d681SAndroid Build Coastguard Worker %v24 = load volatile <16 x i8>, <16 x i8> *%ptr 282*9880d681SAndroid Build Coastguard Worker %v25 = load volatile <16 x i8>, <16 x i8> *%ptr 283*9880d681SAndroid Build Coastguard Worker %v26 = load volatile <16 x i8>, <16 x i8> *%ptr 284*9880d681SAndroid Build Coastguard Worker %v27 = load volatile <16 x i8>, <16 x i8> *%ptr 285*9880d681SAndroid Build Coastguard Worker %v28 = load volatile <16 x i8>, <16 x i8> *%ptr 286*9880d681SAndroid Build Coastguard Worker %v29 = load volatile <16 x i8>, <16 x i8> *%ptr 287*9880d681SAndroid Build Coastguard Worker %v30 = load volatile <16 x i8>, <16 x i8> *%ptr 288*9880d681SAndroid Build Coastguard Worker %v31 = load volatile <16 x i8>, <16 x i8> *%ptr 289*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v31, <16 x i8> *%ptr 290*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v30, <16 x i8> *%ptr 291*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v29, <16 x i8> *%ptr 292*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v28, <16 x i8> *%ptr 293*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v27, <16 x i8> *%ptr 294*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v26, <16 x i8> *%ptr 295*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v25, <16 x i8> *%ptr 296*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v24, <16 x i8> *%ptr 297*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v23, <16 x i8> *%ptr 298*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v22, <16 x i8> *%ptr 299*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v21, <16 x i8> *%ptr 300*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v20, <16 x i8> *%ptr 301*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v19, <16 x i8> *%ptr 302*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v18, <16 x i8> *%ptr 303*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v17, <16 x i8> *%ptr 304*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v16, <16 x i8> *%ptr 305*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v7, <16 x i8> *%ptr 306*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v6, <16 x i8> *%ptr 307*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v5, <16 x i8> *%ptr 308*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v4, <16 x i8> *%ptr 309*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v3, <16 x i8> *%ptr 310*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v2, <16 x i8> *%ptr 311*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v1, <16 x i8> *%ptr 312*9880d681SAndroid Build Coastguard Worker store volatile <16 x i8> %v0, <16 x i8> *%ptr 313*9880d681SAndroid Build Coastguard Worker ret void 314*9880d681SAndroid Build Coastguard Worker} 315