1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 -fast-isel -fast-isel-abort=1 | FileCheck %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: .section __LLVM_STACKMAPS,__llvm_stackmaps 5*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: __LLVM_StackMaps: 6*9880d681SAndroid Build Coastguard Worker; Header 7*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 1 8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 0 9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 10*9880d681SAndroid Build Coastguard Worker; Num Functions 11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long 4 12*9880d681SAndroid Build Coastguard Worker; Num LargeConstants 13*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long 3 14*9880d681SAndroid Build Coastguard Worker; Num Callsites 15*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long 7 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker; Functions and stack size 18*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .quad _constantargs 19*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .quad 8 20*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .quad _liveConstant 21*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .quad 8 22*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .quad _directFrameIdx 23*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .quad 40 24*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .quad _longid 25*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .quad 8 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker; Large Constants 28*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .quad 2147483648 29*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .quad 4294967295 30*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .quad 4294967296 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Worker; Callsites 33*9880d681SAndroid Build Coastguard Worker; Constant arguments 34*9880d681SAndroid Build Coastguard Worker; 35*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .quad 1 36*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long L{{.*}}-_constantargs 37*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 38*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 12 39*9880d681SAndroid Build Coastguard Worker; SmallConstant 40*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 4 41*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 42*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 43*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long -1 44*9880d681SAndroid Build Coastguard Worker; SmallConstant 45*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 4 46*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 47*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 48*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long -1 49*9880d681SAndroid Build Coastguard Worker; SmallConstant 50*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 4 51*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 52*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 53*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long 65536 54*9880d681SAndroid Build Coastguard Worker; SmallConstant 55*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 4 56*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 57*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 58*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long 2000000000 59*9880d681SAndroid Build Coastguard Worker; SmallConstant 60*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 4 61*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 62*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 63*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long 2147483647 64*9880d681SAndroid Build Coastguard Worker; SmallConstant 65*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 4 66*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 67*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 68*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long -1 69*9880d681SAndroid Build Coastguard Worker; SmallConstant 70*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 4 71*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 72*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 73*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long -1 74*9880d681SAndroid Build Coastguard Worker; SmallConstant 75*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 4 76*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 77*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 78*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long 0 79*9880d681SAndroid Build Coastguard Worker; LargeConstant at index 0 80*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 5 81*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 82*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 83*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long 0 84*9880d681SAndroid Build Coastguard Worker; LargeConstant at index 1 85*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 5 86*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 87*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 88*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long 1 89*9880d681SAndroid Build Coastguard Worker; LargeConstant at index 2 90*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 5 91*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 92*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 93*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long 2 94*9880d681SAndroid Build Coastguard Worker; SmallConstant 95*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 4 96*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 97*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 98*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long -1 99*9880d681SAndroid Build Coastguard Worker 100*9880d681SAndroid Build Coastguard Workerdefine void @constantargs() { 101*9880d681SAndroid Build Coastguard Workerentry: 102*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 1, i32 15, i16 65535, i16 -1, i32 65536, i32 2000000000, i32 2147483647, i32 -1, i32 4294967295, i32 4294967296, i64 2147483648, i64 4294967295, i64 4294967296, i64 -1) 103*9880d681SAndroid Build Coastguard Worker ret void 104*9880d681SAndroid Build Coastguard Worker} 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Worker; Map a constant value. 107*9880d681SAndroid Build Coastguard Worker; 108*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: .long L{{.*}}-_liveConstant 109*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 110*9880d681SAndroid Build Coastguard Worker; 1 location 111*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 1 112*9880d681SAndroid Build Coastguard Worker; Loc 0: SmallConstant 113*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 4 114*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 115*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 116*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long 33 117*9880d681SAndroid Build Coastguard Worker 118*9880d681SAndroid Build Coastguard Workerdefine void @liveConstant() { 119*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 15, i32 5, i32 33) 120*9880d681SAndroid Build Coastguard Worker ret void 121*9880d681SAndroid Build Coastguard Worker} 122*9880d681SAndroid Build Coastguard Worker 123*9880d681SAndroid Build Coastguard Worker; Directly map an alloca's address. 124*9880d681SAndroid Build Coastguard Worker; 125*9880d681SAndroid Build Coastguard Worker; Callsite 16 126*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: .long L{{.*}}-_directFrameIdx 127*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 0 128*9880d681SAndroid Build Coastguard Worker; 1 location 129*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 1 130*9880d681SAndroid Build Coastguard Worker; Loc 0: Direct RBP - ofs 131*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 2 132*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .byte 8 133*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short 6 134*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .long 135*9880d681SAndroid Build Coastguard Worker 136*9880d681SAndroid Build Coastguard Workerdefine void @directFrameIdx() { 137*9880d681SAndroid Build Coastguard Workerentry: 138*9880d681SAndroid Build Coastguard Worker %metadata1 = alloca i64, i32 3, align 8 139*9880d681SAndroid Build Coastguard Worker store i64 11, i64* %metadata1 140*9880d681SAndroid Build Coastguard Worker store i64 12, i64* %metadata1 141*9880d681SAndroid Build Coastguard Worker store i64 13, i64* %metadata1 142*9880d681SAndroid Build Coastguard Worker call void (i64, i32, ...) @llvm.experimental.stackmap(i64 16, i32 0, i64* %metadata1) 143*9880d681SAndroid Build Coastguard Worker ret void 144*9880d681SAndroid Build Coastguard Worker} 145*9880d681SAndroid Build Coastguard Worker 146*9880d681SAndroid Build Coastguard Worker; Test a 64-bit ID. 147*9880d681SAndroid Build Coastguard Worker; 148*9880d681SAndroid Build Coastguard Worker; CHECK: .quad 4294967295 149*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: .long L{{.*}}-_longid 150*9880d681SAndroid Build Coastguard Worker; CHECK: .quad 4294967296 151*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: .long L{{.*}}-_longid 152*9880d681SAndroid Build Coastguard Worker; CHECK: .quad 9223372036854775807 153*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: .long L{{.*}}-_longid 154*9880d681SAndroid Build Coastguard Worker; CHECK: .quad -1 155*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: .long L{{.*}}-_longid 156*9880d681SAndroid Build Coastguard Workerdefine void @longid() { 157*9880d681SAndroid Build Coastguard Workerentry: 158*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 4294967295, i32 0) 159*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 4294967296, i32 0) 160*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 9223372036854775807, i32 0) 161*9880d681SAndroid Build Coastguard Worker tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 -1, i32 0) 162*9880d681SAndroid Build Coastguard Worker ret void 163*9880d681SAndroid Build Coastguard Worker} 164*9880d681SAndroid Build Coastguard Worker 165*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.experimental.stackmap(i64, i32, ...) 166