Grow the stackmap/patchpoint format to hold 64-bit IDs.
[oota-llvm.git] / test / CodeGen / X86 / stackmap-liveness.ll
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -disable-fp-elim | FileCheck %s
2 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -disable-fp-elim -enable-stackmap-liveness| FileCheck -check-prefix=LIVE %s
3 ;
4 ; Note: Print verbose stackmaps using -debug-only=stackmaps.
5
6 ; CHECK-LABEL:  .section  __LLVM_STACKMAPS,__llvm_stackmaps
7 ; CHECK-NEXT:   __LLVM_StackMaps:
8 ; CHECK-NEXT:   .long   0
9 ; Num LargeConstants
10 ; CHECK-NEXT:   .long   0
11 ; Num Callsites
12 ; CHECK-NEXT:   .long   3
13
14 ; CHECK-LABEL:  .long L{{.*}}-_liveness
15 ; CHECK-NEXT:   .short  0
16 ; CHECK-NEXT:   .short  0
17 ; CHECK-NEXT:   .short  0
18 ; LIVE-LABEL:   .long L{{.*}}-_liveness
19 ; LIVE-NEXT:    .short  0
20 ; LIVE-NEXT:    .short  0
21 ; LIVE-NEXT:    .short  2
22 ; LIVE-NEXT:    .short  7
23 ; LIVE-NEXT:    .byte 0
24 ; LIVE-NEXT:    .byte 8
25 ; LIVE-NEXT:    .short  19
26 ; LIVE-NEXT:    .byte 0
27 ; LIVE-NEXT:    .byte 16
28
29 ; CHECK-LABEL:  .long L{{.*}}-_liveness
30 ; CHECK-NEXT:   .short  0
31 ; CHECK-NEXT:   .short  0
32 ; CHECK-NEXT:   .short  0
33 ; LIVE-LABEL:   .long L{{.*}}-_liveness
34 ; LIVE-NEXT:    .short  0
35 ; LIVE-NEXT:    .short  0
36 ; LIVE-NEXT:    .short  6
37 ; LIVE-NEXT:    .short  0
38 ; LIVE-NEXT:    .byte 0
39 ; LIVE-NEXT:    .byte 2
40 ; LIVE-NEXT:    .short  7
41 ; LIVE-NEXT:    .byte 0
42 ; LIVE-NEXT:    .byte 8
43 ; LIVE-NEXT:    .short  8
44 ; LIVE-NEXT:    .byte 0
45 ; LIVE-NEXT:    .byte 8
46 ; LIVE-NEXT:    .short  17
47 ; LIVE-NEXT:    .byte 0
48 ; LIVE-NEXT:    .byte 32
49 ; LIVE-NEXT:    .short  18
50 ; LIVE-NEXT:    .byte 0
51 ; LIVE-NEXT:    .byte 32
52 ; LIVE-NEXT:    .short  19
53 ; LIVE-NEXT:    .byte 0
54 ; LIVE-NEXT:    .byte 16
55
56 ; CHECK-LABEL:  .long L{{.*}}-_liveness
57 ; CHECK-NEXT:   .short  0
58 ; CHECK-NEXT:   .short  0
59 ; CHECK-NEXT:   .short  0
60 ; LIVE-LABEL:   .long L{{.*}}-_liveness
61 ; LIVE-NEXT:    .short  0
62 ; LIVE-NEXT:    .short  0
63 ; LIVE-NEXT:    .short  2
64 ; LIVE-NEXT:    .short  7
65 ; LIVE-NEXT:    .byte 0
66 ; LIVE-NEXT:    .byte 8
67 ; LIVE-NEXT:    .short  19
68 ; LIVE-NEXT:    .byte 0
69 ; LIVE-NEXT:    .byte 16
70 define void @liveness() {
71 entry:
72   %a1 = call <2 x double> asm sideeffect "", "={xmm2}"() nounwind
73   call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 1, i32 5)
74   %a2 = call i64 asm sideeffect "", "={r8}"() nounwind
75   %a3 = call i8 asm sideeffect "", "={ah}"() nounwind
76   %a4 = call <4 x double> asm sideeffect "", "={ymm0}"() nounwind
77   %a5 = call <4 x double> asm sideeffect "", "={ymm1}"() nounwind
78   call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 2, i32 5)
79   call void asm sideeffect "", "{r8},{ah},{ymm0},{ymm1}"(i64 %a2, i8 %a3, <4 x double> %a4, <4 x double> %a5) nounwind
80   call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 3, i32 5)
81   call void asm sideeffect "", "{xmm2}"(<2 x double> %a1) nounwind
82   ret void
83 }
84
85 declare void @llvm.experimental.stackmap(i64, i32, ...)