1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine void @nop_test() { 4*9880d681SAndroid Build Coastguard Workerentry: 5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: nop_test: 6*9880d681SAndroid Build Coastguard Worker; CHECK: nop 7*9880d681SAndroid Build Coastguard Worker; CHECK: xchgw %ax, %ax 8*9880d681SAndroid Build Coastguard Worker; CHECK: nopl (%rax) 9*9880d681SAndroid Build Coastguard Worker; CHECK: nopl 8(%rax) 10*9880d681SAndroid Build Coastguard Worker; CHECK: nopl 8(%rax,%rax) 11*9880d681SAndroid Build Coastguard Worker; CHECK: nopw 8(%rax,%rax) 12*9880d681SAndroid Build Coastguard Worker; CHECK: nopl 512(%rax) 13*9880d681SAndroid Build Coastguard Worker; CHECK: nopl 512(%rax,%rax) 14*9880d681SAndroid Build Coastguard Worker; CHECK: nopw 512(%rax,%rax) 15*9880d681SAndroid Build Coastguard Worker; CHECK: nopw %cs:512(%rax,%rax) 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker; 11 18*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 19*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker; 12 22*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 23*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 24*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker; 13 27*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 28*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 29*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 30*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Worker; 14 33*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 34*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 35*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 36*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 37*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Worker; 15 40*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 41*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 42*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 43*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 44*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 45*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Worker; 16 48*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 49*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 50*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 51*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 52*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 53*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 54*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nop 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Worker; 17 57*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 58*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 59*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 60*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 61*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 62*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 63*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: xchgw %ax, %ax 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Worker; 18 66*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 67*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 68*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 69*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 70*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 71*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 72*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopl (%rax) 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Worker; 19 75*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 76*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 77*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 78*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 79*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 80*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 81*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopl 8(%rax) 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Worker; 20 84*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 85*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 86*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 87*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 88*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 89*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 90*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopl 8(%rax,%rax) 91*9880d681SAndroid Build Coastguard Worker 92*9880d681SAndroid Build Coastguard Worker; 21 93*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 94*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 95*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 96*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 97*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 98*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 99*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw 8(%rax,%rax) 100*9880d681SAndroid Build Coastguard Worker 101*9880d681SAndroid Build Coastguard Worker; 22 102*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 103*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 104*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 105*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 106*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 107*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 108*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopl 512(%rax) 109*9880d681SAndroid Build Coastguard Worker 110*9880d681SAndroid Build Coastguard Worker; 23 111*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 112*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 113*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 114*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 115*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 116*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 117*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopl 512(%rax,%rax) 118*9880d681SAndroid Build Coastguard Worker 119*9880d681SAndroid Build Coastguard Worker; 24 120*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 121*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 122*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 123*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 124*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 125*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 126*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw 512(%rax,%rax) 127*9880d681SAndroid Build Coastguard Worker 128*9880d681SAndroid Build Coastguard Worker; 25 129*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 130*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 131*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 132*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 133*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 134*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 135*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 136*9880d681SAndroid Build Coastguard Worker 137*9880d681SAndroid Build Coastguard Worker; 26 138*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 139*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 140*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 141*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 142*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 143*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 144*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 145*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 146*9880d681SAndroid Build Coastguard Worker 147*9880d681SAndroid Build Coastguard Worker; 27 148*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 149*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 150*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 151*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 152*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 153*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 154*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 155*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 156*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 157*9880d681SAndroid Build Coastguard Worker 158*9880d681SAndroid Build Coastguard Worker; 28 159*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 160*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 161*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 162*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 163*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 164*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 165*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 166*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 167*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 168*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 169*9880d681SAndroid Build Coastguard Worker 170*9880d681SAndroid Build Coastguard Worker;29 171*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 172*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 173*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 174*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 175*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 176*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 177*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 178*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 179*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 180*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 181*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 182*9880d681SAndroid Build Coastguard Worker 183*9880d681SAndroid Build Coastguard Worker; 30 184*9880d681SAndroid Build Coastguard Worker; CHECK: .byte 102 185*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 186*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 187*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 188*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 189*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 190*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 191*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 192*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 193*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 194*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 102 195*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nopw %cs:512(%rax,%rax) 196*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 0, i32 0) 197*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 1, i32 1) 198*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 2, i32 2) 199*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 3, i32 3) 200*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 4, i32 4) 201*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 5, i32 5) 202*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 6, i32 6) 203*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 7, i32 7) 204*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 8, i32 8) 205*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 9, i32 9) 206*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 10, i32 10) 207*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 11, i32 11) 208*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 12, i32 12) 209*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 13, i32 13) 210*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 14, i32 14) 211*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 15, i32 15) 212*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 16, i32 16) 213*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 17, i32 17) 214*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 18, i32 18) 215*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 19, i32 19) 216*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 20, i32 20) 217*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 21, i32 21) 218*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 22, i32 22) 219*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 23, i32 23) 220*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 24, i32 24) 221*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 25, i32 25) 222*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 26, i32 26) 223*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 27, i32 27) 224*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 28, i32 28) 225*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 29, i32 29) 226*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 30, i32 30) 227*9880d681SAndroid Build Coastguard Worker; Add an extra stackmap with a zero-length shadow to thwart the shadow 228*9880d681SAndroid Build Coastguard Worker; optimization. This will force all 15 bytes of the previous shadow to be 229*9880d681SAndroid Build Coastguard Worker; padded with nops. 230*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 31, i32 0) 231*9880d681SAndroid Build Coastguard Worker ret void 232*9880d681SAndroid Build Coastguard Worker} 233*9880d681SAndroid Build Coastguard Worker 234*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.experimental.stackmap(i64, i32, ...) 235