15eb64110SUlrich Weigand; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s 25eb64110SUlrich Weigand 35eb64110SUlrich Weiganddefine void @nop_test() { 45eb64110SUlrich Weigandentry: 55eb64110SUlrich Weigand; CHECK-LABEL: nop_test: 65eb64110SUlrich Weigand 75eb64110SUlrich Weigand; 2 85eb64110SUlrich Weigand; CHECK: bcr 0, %r0 95eb64110SUlrich Weigand 105eb64110SUlrich Weigand; 4 115eb64110SUlrich Weigand; CHECK: bc 0, 0 125eb64110SUlrich Weigand 135eb64110SUlrich Weigand; 6 14*982695c0SJonas Paulsson; CHECK: .Ltmp 15*982695c0SJonas Paulsson; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]: 16*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 175eb64110SUlrich Weigand 185eb64110SUlrich Weigand; 8 19*982695c0SJonas Paulsson; CHECK: .Ltmp 20*982695c0SJonas Paulsson; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]: 21*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 225eb64110SUlrich Weigand; CHECK: bcr 0, %r0 235eb64110SUlrich Weigand 245eb64110SUlrich Weigand; 10 25*982695c0SJonas Paulsson; CHECK: .Ltmp 26*982695c0SJonas Paulsson; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]: 27*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 285eb64110SUlrich Weigand; CHECK: bc 0, 0 295eb64110SUlrich Weigand 305eb64110SUlrich Weigand; 12 31*982695c0SJonas Paulsson; CHECK: .Ltmp 32*982695c0SJonas Paulsson; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]: 33*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 34*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 35*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 365eb64110SUlrich Weigand 375eb64110SUlrich Weigand; 14 38*982695c0SJonas Paulsson; CHECK: .Ltmp 39*982695c0SJonas Paulsson; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]: 40*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 41*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 42*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 435eb64110SUlrich Weigand; CHECK: bcr 0, %r0 445eb64110SUlrich Weigand 455eb64110SUlrich Weigand; 16 46*982695c0SJonas Paulsson; CHECK: .Ltmp 47*982695c0SJonas Paulsson; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]: 48*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 49*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 50*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 515eb64110SUlrich Weigand; CHECK: bc 0, 0 525eb64110SUlrich Weigand 535eb64110SUlrich Weigand; 18 54*982695c0SJonas Paulsson; CHECK: .Ltmp 55*982695c0SJonas Paulsson; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]: 56*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 57*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 58*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 59*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 60*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 615eb64110SUlrich Weigand 625eb64110SUlrich Weigand; 20 63*982695c0SJonas Paulsson; CHECK: .Ltmp 64*982695c0SJonas Paulsson; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]: 65*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 66*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 67*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 68*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 69*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 705eb64110SUlrich Weigand; CHECK: bcr 0, %r0 715eb64110SUlrich Weigand 725eb64110SUlrich Weigand; 22 73*982695c0SJonas Paulsson; CHECK: .Ltmp 74*982695c0SJonas Paulsson; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]: 75*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 76*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 77*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 78*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 79*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 805eb64110SUlrich Weigand; CHECK: bc 0, 0 815eb64110SUlrich Weigand 825eb64110SUlrich Weigand; 24 83*982695c0SJonas Paulsson; CHECK: .Ltmp 84*982695c0SJonas Paulsson; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]: 85*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 86*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 87*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 88*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 89*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 90*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 91*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 925eb64110SUlrich Weigand 935eb64110SUlrich Weigand; 26 94*982695c0SJonas Paulsson; CHECK: .Ltmp 95*982695c0SJonas Paulsson; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]: 96*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 97*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 98*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 99*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 100*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 101*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 102*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 1035eb64110SUlrich Weigand; CHECK: bcr 0, %r0 1045eb64110SUlrich Weigand 1055eb64110SUlrich Weigand; 28 106*982695c0SJonas Paulsson; CHECK: .Ltmp 107*982695c0SJonas Paulsson; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]: 108*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 109*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 110*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 111*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 112*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 113*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 114*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 1155eb64110SUlrich Weigand; CHECK: bc 0, 0 1165eb64110SUlrich Weigand 1175eb64110SUlrich Weigand; 30 118*982695c0SJonas Paulsson; CHECK: .Ltmp 119*982695c0SJonas Paulsson; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]: 120*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 121*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 122*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 123*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 124*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 125*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 126*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 127*982695c0SJonas Paulsson; CHECK: [[LAB:.Ltmp[0-9]+]]: 128*982695c0SJonas Paulsson; CHECK-NEXT: brcl 0, [[LAB]] 1295eb64110SUlrich Weigand 1305eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 0, i32 0) 1315eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 2, i32 2) 1325eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 4, i32 4) 1335eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 6, i32 6) 1345eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 8, i32 8) 1355eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 10, i32 10) 1365eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 12, i32 12) 1375eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 14, i32 14) 1385eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 16, i32 16) 1395eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 18, i32 18) 1405eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 20, i32 20) 1415eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 22, i32 22) 1425eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 24, i32 24) 1435eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 26, i32 26) 1445eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 28, i32 28) 1455eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 30, i32 30) 1465eb64110SUlrich Weigand; Add an extra stackmap with a zero-length shadow to thwart the shadow 1475eb64110SUlrich Weigand; optimization. This will force all bytes of the previous shadow to be 1485eb64110SUlrich Weigand; padded with nops. 1495eb64110SUlrich Weigand tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 31, i32 0) 1505eb64110SUlrich Weigand ret void 1515eb64110SUlrich Weigand} 1525eb64110SUlrich Weigand 1535eb64110SUlrich Weiganddeclare void @llvm.experimental.stackmap(i64, i32, ...) 154