155 lines · plain
1; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -enable-patchpoint-liveness=false | FileCheck %s2 3; CHECK-LABEL: .section __LLVM_STACKMAPS,__llvm_stackmaps4; CHECK-NEXT: __LLVM_StackMaps:5 6; Header7; CHECK-NEXT: .byte 38; CHECK-NEXT: .byte 09; CHECK-NEXT: .short 010 11; NumFunctions12; CHECK-NEXT: .long 113; NumConstants14; CHECK-NEXT: .long 015; NumRecords16; CHECK-NEXT: .long 117 18; StackSizeRecord[NumFunctions]19; StackSizeRecord[0]20; CHECK-NEXT: .quad _main21; CHECK-NEXT: .quad 2422; CHECK-NEXT: .quad 123 24; Constants[NumConstants] (empty)25 26; StkMapRecord[NumRecords]27; StkMapRecord[0]28; CHECK-NEXT: .quad 029; CHECK-NEXT: .long {{.*}}30; CHECK-NEXT: .short {{.*}}31; NumLocations32; CHECK-NEXT: .short 1133; Location[NumLocations]34; Location[0]35; CHECK-NEXT: .byte 136; CHECK-NEXT: .byte 037; CHECK-NEXT: .short 138; CHECK-NEXT: .short {{.*}}39; CHECK-NEXT: .short 040; CHECK-NEXT: .long 041; Location[1]42; CHECK-NEXT: .byte 443; CHECK-NEXT: .byte 044; CHECK-NEXT: .short 845; CHECK-NEXT: .short 046; CHECK-NEXT: .short 047; CHECK-NEXT: .long 2248; Location[2]49; CHECK-NEXT: .byte 150; CHECK-NEXT: .byte 051; CHECK-NEXT: .short 152; CHECK-NEXT: .short {{.*}}53; CHECK-NEXT: .short 054; CHECK-NEXT: .long 055; Location[3]56; CHECK-NEXT: .byte 157; CHECK-NEXT: .byte 058; CHECK-NEXT: .short 1659; CHECK-NEXT: .short {{.*}}60; CHECK-NEXT: .short 061; CHECK-NEXT: .long 062; Location[4]63; CHECK-NEXT: .byte 164; CHECK-NEXT: .byte 065; CHECK-NEXT: .short 1666; CHECK-NEXT: .short {{.*}}67; CHECK-NEXT: .short 068; CHECK-NEXT: .long 069; Location[5]70; CHECK-NEXT: .byte 471; CHECK-NEXT: .byte 072; CHECK-NEXT: .short 873; CHECK-NEXT: .short {{.*}}74; CHECK-NEXT: .short 075; CHECK-NEXT: .long 6676; Location[6]77; CHECK-NEXT: .byte 178; CHECK-NEXT: .byte 079; CHECK-NEXT: .short 480; CHECK-NEXT: .short {{.*}}81; CHECK-NEXT: .short 082; CHECK-NEXT: .long 083; Location[7]84; CHECK-NEXT: .byte 485; CHECK-NEXT: .byte 086; CHECK-NEXT: .short 887; CHECK-NEXT: .short 088; CHECK-NEXT: .short 089; CHECK-NEXT: .long 090; Location[8]91; CHECK-NEXT: .byte 192; CHECK-NEXT: .byte 093; CHECK-NEXT: .short 494; CHECK-NEXT: .short {{.*}}95; CHECK-NEXT: .short 096; CHECK-NEXT: .long 097; Location[9]98; CHECK-NEXT: .byte 499; CHECK-NEXT: .byte 0100; CHECK-NEXT: .short 8101; CHECK-NEXT: .short 0102; CHECK-NEXT: .short 0103; CHECK-NEXT: .long 0104; Location[10]105; CHECK-NEXT: .byte 1106; CHECK-NEXT: .byte 0107; CHECK-NEXT: .short 1108; CHECK-NEXT: .short {{.*}}109; CHECK-NEXT: .short 0110; CHECK-NEXT: .long 0111 112@p32 = external global ptr addrspace(270)113 114%struct1 = type {i32, i64}115%struct2 = type {i1, i1, i1}116 117declare void @llvm.experimental.patchpoint.void(i64, i32, ptr, i32, ...)118 119define dso_local i32 @main(i32 %argc, ptr %argv) {120entry:121 %i1reg = icmp eq i32 %argc, 5122 %i7reg = zext i1 %i1reg to i7123 %halfreg = sitofp i32 %argc to half124 %ptr32 = load ptr addrspace(270), ptr @p32125 %structreg1 = insertvalue %struct1 zeroinitializer, i32 %argc, 0126 %structreg2 = insertvalue %struct2 zeroinitializer, i1 %i1reg, 0127 call void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(128 i64 0,129 i32 0,130 ptr null,131 i32 0,132 i1 %i1reg,133 i7 22,134 i7 %i7reg,135 half 1.0,136 half %halfreg,137 i128 66,138 ; FIXME: fix and test vectors. At the moment even legally sized vectors139 ; are broken:140 ; https://github.com/llvm/llvm-project/issues/55613141 ;142 ; FIXME: test non-constant i128 once these are fixed:143 ; - https://github.com/llvm/llvm-project/issues/26431144 ; - https://github.com/llvm/llvm-project/issues/55957145 ptr addrspace(270) %ptr32,146 ; FIXME: The stackmap record generated for structs is incorrect:147 ; - https://github.com/llvm/llvm-project/issues/55649148 ; - https://github.com/llvm/llvm-project/issues/55957149 %struct1 zeroinitializer,150 %struct1 %structreg1,151 %struct2 zeroinitializer,152 %struct2 %structreg2)153 ret i32 0154}155