@@ -12,43 +12,43 @@ define i32 @test_spill(
12
12
i32 addrspace (1 )* %arg12 , i32 addrspace (1 )* %arg13 , i32 addrspace (1 )* %arg14 , i32 addrspace (1 )* %arg15 , i32 addrspace (1 )* %arg16 , i32 addrspace (1 )* %arg17
13
13
) gc "statepoint-example" {
14
14
; CHECK-VREG-LABEL: test_spill
15
- ; CHECK-VREG: %18 :gr64 = COPY $r9
16
- ; CHECK-VREG: %19 :gr64 = COPY $r8
17
- ; CHECK-VREG: %20 :gr64 = COPY $rcx
18
- ; CHECK-VREG: %21 :gr64 = COPY $rdx
19
- ; CHECK-VREG: %22 :gr64 = COPY $rsi
20
- ; CHECK-VREG: %23 :gr64 = COPY $rdi
21
- ; CHECK-VREG: %17 :gr64 = MOV64rm %fixed-stack.11, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.11, align 16)
22
- ; CHECK-VREG: %16 :gr64 = MOV64rm %fixed-stack.10, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.10)
23
- ; CHECK-VREG: %15 :gr64 = MOV64rm %fixed-stack.9, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.9, align 16)
24
- ; CHECK-VREG: %14 :gr64 = MOV64rm %fixed-stack.8, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.8)
25
- ; CHECK-VREG: %13 :gr64 = MOV64rm %fixed-stack.7, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.7, align 16)
26
- ; CHECK-VREG: %12 :gr64 = MOV64rm %fixed-stack.6, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.6)
27
- ; CHECK-VREG: %11 :gr64 = MOV64rm %fixed-stack.5, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.5, align 16)
28
- ; CHECK-VREG: %10 :gr64 = MOV64rm %fixed-stack.4, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.4)
29
- ; CHECK-VREG: %9 :gr64 = MOV64rm %fixed-stack.3, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.3, align 16)
30
- ; CHECK-VREG: %8 :gr64 = MOV64rm %fixed-stack.2, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.2)
31
- ; CHECK-VREG: %7 :gr64 = MOV64rm %fixed-stack.1, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.1, align 16)
32
- ; CHECK-VREG: %6 :gr64 = MOV64rm %fixed-stack.0, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.0)
33
- ; CHECK-VREG: %6 :gr64, %7 :gr64, %8 :gr64, %9 :gr64, %10 :gr64, %11 :gr64, %12 :gr64, %13 :gr64, %14 :gr64, %15 :gr64, %16 :gr64, %17 :gr64, %18 :gr64, %19 :gr64, %20 :gr64, %21 :gr64, %22 :gr64, %23 :gr64 = STATEPOINT 0, 0, 0, @func, 2, 0, 2, 0, 2, 0, 2, 18, %6 (tied-def 0), %7 (tied-def 1), %8 (tied-def 2), %9 (tied-def 3), %10 (tied-def 4), %11 (tied-def 5), %12 (tied-def 6), %13 (tied-def 7), %14 (tied-def 8), %15 (tied-def 9), %16 (tied-def 10), %17 (tied-def 11), %18 (tied-def 12), %19 (tied-def 13), %20 (tied-def 14), %21 (tied-def 15), %22 (tied-def 16), %23 (tied-def 17), 2, 0, 2, 18, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, csr_64, implicit-def $rsp, implicit-def $ssp
34
- ; CHECK-VREG: %38:gr32 = MOV32rm %23 , 1, $noreg, 4, $noreg :: (load (s32) from %ir.gep00, addrspace 1)
35
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %22 , 1, $noreg, 8, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep01, addrspace 1)
36
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %21 , 1, $noreg, 12, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep02, addrspace 1)
37
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %20 , 1, $noreg, 16, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep03, addrspace 1)
38
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %19 , 1, $noreg, 20, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep04, addrspace 1)
39
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %18 , 1, $noreg, 24, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep05, addrspace 1)
40
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %17 , 1, $noreg, 28, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep06, addrspace 1)
41
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %16 , 1, $noreg, 32, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep07, addrspace 1)
42
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %15 , 1, $noreg, 36, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep08, addrspace 1)
43
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %14 , 1, $noreg, 40, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep09, addrspace 1)
44
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %13 , 1, $noreg, 44, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep10, addrspace 1)
45
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %12 , 1, $noreg, 48, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep11, addrspace 1)
46
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %11 , 1, $noreg, 52, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep12, addrspace 1)
47
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %10 , 1, $noreg, 56, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep13, addrspace 1)
48
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %9 , 1, $noreg, 60, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep14, addrspace 1)
49
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %8 , 1, $noreg, 64, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep15, addrspace 1)
50
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %7 , 1, $noreg, 68, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep16, addrspace 1)
51
- ; CHECK-VREG: %38:gr32 = ADD32rm %38, %6 , 1, $noreg, 72, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep17, addrspace 1)
15
+ ; CHECK-VREG: %30 :gr64 = COPY $r9
16
+ ; CHECK-VREG: %31 :gr64 = COPY $r8
17
+ ; CHECK-VREG: %32 :gr64 = COPY $rcx
18
+ ; CHECK-VREG: %33 :gr64 = COPY $rdx
19
+ ; CHECK-VREG: %34 :gr64 = COPY $rsi
20
+ ; CHECK-VREG: %35 :gr64 = COPY $rdi
21
+ ; CHECK-VREG: %29 :gr64 = MOV64rm %fixed-stack.11, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.11, align 16)
22
+ ; CHECK-VREG: %28 :gr64 = MOV64rm %fixed-stack.10, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.10)
23
+ ; CHECK-VREG: %27 :gr64 = MOV64rm %fixed-stack.9, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.9, align 16)
24
+ ; CHECK-VREG: %26 :gr64 = MOV64rm %fixed-stack.8, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.8)
25
+ ; CHECK-VREG: %25 :gr64 = MOV64rm %fixed-stack.7, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.7, align 16)
26
+ ; CHECK-VREG: %24 :gr64 = MOV64rm %fixed-stack.6, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.6)
27
+ ; CHECK-VREG: %23 :gr64 = MOV64rm %fixed-stack.5, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.5, align 16)
28
+ ; CHECK-VREG: %22 :gr64 = MOV64rm %fixed-stack.4, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.4)
29
+ ; CHECK-VREG: %21 :gr64 = MOV64rm %fixed-stack.3, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.3, align 16)
30
+ ; CHECK-VREG: %20 :gr64 = MOV64rm %fixed-stack.2, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.2)
31
+ ; CHECK-VREG: %19 :gr64 = MOV64rm %fixed-stack.1, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.1, align 16)
32
+ ; CHECK-VREG: %18 :gr64 = MOV64rm %fixed-stack.0, 1, $noreg, 0, $noreg :: (load (s64) from %fixed-stack.0)
33
+ ; CHECK-VREG: %18 :gr64, %19 :gr64, %20 :gr64, %21 :gr64, %22 :gr64, %23 :gr64, %24 :gr64, %25 :gr64, %26 :gr64, %27 :gr64, %28 :gr64, %29 :gr64, %30 :gr64, %31 :gr64, %32 :gr64, %33 :gr64, %34 :gr64, %35 :gr64 = STATEPOINT 0, 0, 0, @func, 2, 0, 2, 0, 2, 0, 2, 18, %18 (tied-def 0), %19 (tied-def 1), %20 (tied-def 2), %21 (tied-def 3), %22 (tied-def 4), %23 (tied-def 5), %24 (tied-def 6), %25 (tied-def 7), %26 (tied-def 8), %27 (tied-def 9), %28 (tied-def 10), %29 (tied-def 11), %30 (tied-def 12), %31 (tied-def 13), %32 (tied-def 14), %33 (tied-def 15), %34 (tied-def 16), %35 (tied-def 17), 2, 0, 2, 18, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, csr_64, implicit-def $rsp, implicit-def $ssp
34
+ ; CHECK-VREG: %38:gr32 = MOV32rm %35 , 1, $noreg, 4, $noreg :: (load (s32) from %ir.gep00, addrspace 1)
35
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %34 , 1, $noreg, 8, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep01, addrspace 1)
36
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %33 , 1, $noreg, 12, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep02, addrspace 1)
37
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %32 , 1, $noreg, 16, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep03, addrspace 1)
38
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %31 , 1, $noreg, 20, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep04, addrspace 1)
39
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %30 , 1, $noreg, 24, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep05, addrspace 1)
40
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %29 , 1, $noreg, 28, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep06, addrspace 1)
41
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %28 , 1, $noreg, 32, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep07, addrspace 1)
42
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %27 , 1, $noreg, 36, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep08, addrspace 1)
43
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %26 , 1, $noreg, 40, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep09, addrspace 1)
44
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %25 , 1, $noreg, 44, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep10, addrspace 1)
45
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %24 , 1, $noreg, 48, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep11, addrspace 1)
46
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %23 , 1, $noreg, 52, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep12, addrspace 1)
47
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %22 , 1, $noreg, 56, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep13, addrspace 1)
48
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %21 , 1, $noreg, 60, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep14, addrspace 1)
49
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %20 , 1, $noreg, 64, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep15, addrspace 1)
50
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %19 , 1, $noreg, 68, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep16, addrspace 1)
51
+ ; CHECK-VREG: %38:gr32 = ADD32rm %38, %18 , 1, $noreg, 72, $noreg, implicit-def dead $eflags :: (load (s32) from %ir.gep17, addrspace 1)
52
52
; CHECK-VREG: $eax = COPY %38
53
53
54
54
; CHECK-PREG: renamable $rbx = COPY $r9
0 commit comments