1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2
- ; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \
2
+ ; RUN: llc -O0 - mtriple=riscv64 -verify-machineinstrs < %s \
3
3
; RUN: | FileCheck -check-prefix=RV64 %s
4
- ; RUN: llc -mtriple=riscv64-unknown-linux-gnu -verify-machineinstrs < %s \
4
+ ; RUN: llc -O0 - mtriple=riscv64-unknown-linux-gnu -verify-machineinstrs < %s \
5
5
; RUN: | FileCheck -check-prefix=RV64-LINUX %s
6
6
7
7
declare void @llvm.init.trampoline (ptr , ptr , ptr )
@@ -13,62 +13,62 @@ define i64 @test0(i64 %n, ptr %p) nounwind {
13
13
; RV64: # %bb.0:
14
14
; RV64-NEXT: addi sp, sp, -64
15
15
; RV64-NEXT: sd ra, 56(sp) # 8-byte Folded Spill
16
- ; RV64-NEXT: sd s0, 48(sp) # 8-byte Folded Spill
17
- ; RV64-NEXT: sd s1, 40(sp) # 8-byte Folded Spill
18
- ; RV64-NEXT: mv s0, a0
16
+ ; RV64-NEXT: sd a0, 8(sp) # 8-byte Folded Spill
19
17
; RV64-NEXT: lui a0, %hi(f)
20
18
; RV64-NEXT: addi a0, a0, %lo(f)
21
- ; RV64-NEXT: li a2, 919
22
- ; RV64-NEXT: lui a3, %hi(.LCPI0_0)
23
- ; RV64-NEXT: sd a0, 32(sp)
19
+ ; RV64-NEXT: sd a0, 48(sp)
20
+ ; RV64-NEXT: sd a1, 40(sp)
21
+ ; RV64-NEXT: li a0, 919
22
+ ; RV64-NEXT: sw a0, 24(sp)
23
+ ; RV64-NEXT: lui a0, 40
24
+ ; RV64-NEXT: addiw a0, a0, 103
25
+ ; RV64-NEXT: sw a0, 36(sp)
26
+ ; RV64-NEXT: lui a0, 4155
27
+ ; RV64-NEXT: addiw a0, a0, 899
28
+ ; RV64-NEXT: sw a0, 32(sp)
24
29
; RV64-NEXT: lui a0, 6203
25
- ; RV64-NEXT: ld a3, %lo(.LCPI0_0)(a3)
26
- ; RV64-NEXT: addi a0, a0, 643
27
- ; RV64-NEXT: sw a2, 8(sp)
28
- ; RV64-NEXT: sw a0, 12(sp)
29
- ; RV64-NEXT: sd a3, 16(sp)
30
- ; RV64-NEXT: sd a1, 24(sp)
31
- ; RV64-NEXT: addi a1, sp, 24
32
- ; RV64-NEXT: addi a0, sp, 8
33
- ; RV64-NEXT: addi s1, sp, 8
30
+ ; RV64-NEXT: addiw a0, a0, 643
31
+ ; RV64-NEXT: sw a0, 28(sp)
32
+ ; RV64-NEXT: addi a1, sp, 40
33
+ ; RV64-NEXT: addi a0, sp, 24
34
+ ; RV64-NEXT: sd a0, 16(sp) # 8-byte Folded Spill
34
35
; RV64-NEXT: call __clear_cache
35
- ; RV64-NEXT: mv a0, s0
36
- ; RV64-NEXT: jalr s1
36
+ ; RV64-NEXT: ld a0, 8(sp) # 8-byte Folded Reload
37
+ ; RV64-NEXT: ld a1, 16(sp) # 8-byte Folded Reload
38
+ ; RV64-NEXT: jalr a1
37
39
; RV64-NEXT: ld ra, 56(sp) # 8-byte Folded Reload
38
- ; RV64-NEXT: ld s0, 48(sp) # 8-byte Folded Reload
39
- ; RV64-NEXT: ld s1, 40(sp) # 8-byte Folded Reload
40
40
; RV64-NEXT: addi sp, sp, 64
41
41
; RV64-NEXT: ret
42
42
;
43
43
; RV64-LINUX-LABEL: test0:
44
44
; RV64-LINUX: # %bb.0:
45
45
; RV64-LINUX-NEXT: addi sp, sp, -64
46
46
; RV64-LINUX-NEXT: sd ra, 56(sp) # 8-byte Folded Spill
47
- ; RV64-LINUX-NEXT: sd s0, 48(sp) # 8-byte Folded Spill
48
- ; RV64-LINUX-NEXT: sd s1, 40(sp) # 8-byte Folded Spill
49
- ; RV64-LINUX-NEXT: mv s0, a0
47
+ ; RV64-LINUX-NEXT: sd a0, 8(sp) # 8-byte Folded Spill
50
48
; RV64-LINUX-NEXT: lui a0, %hi(f)
51
49
; RV64-LINUX-NEXT: addi a0, a0, %lo(f)
52
- ; RV64-LINUX-NEXT: li a2, 919
53
- ; RV64-LINUX-NEXT: lui a3, %hi(.LCPI0_0)
54
- ; RV64-LINUX-NEXT: sd a0, 32(sp)
50
+ ; RV64-LINUX-NEXT: sd a0, 48(sp)
51
+ ; RV64-LINUX-NEXT: sd a1, 40(sp)
52
+ ; RV64-LINUX-NEXT: li a0, 919
53
+ ; RV64-LINUX-NEXT: sw a0, 24(sp)
54
+ ; RV64-LINUX-NEXT: lui a0, 40
55
+ ; RV64-LINUX-NEXT: addiw a0, a0, 103
56
+ ; RV64-LINUX-NEXT: sw a0, 36(sp)
57
+ ; RV64-LINUX-NEXT: lui a0, 4155
58
+ ; RV64-LINUX-NEXT: addiw a0, a0, 899
59
+ ; RV64-LINUX-NEXT: sw a0, 32(sp)
55
60
; RV64-LINUX-NEXT: lui a0, 6203
56
- ; RV64-LINUX-NEXT: ld a3, %lo(.LCPI0_0)(a3)
57
- ; RV64-LINUX-NEXT: addi a0, a0, 643
58
- ; RV64-LINUX-NEXT: sw a2, 8(sp)
59
- ; RV64-LINUX-NEXT: sw a0, 12(sp)
60
- ; RV64-LINUX-NEXT: sd a3, 16(sp)
61
- ; RV64-LINUX-NEXT: sd a1, 24(sp)
62
- ; RV64-LINUX-NEXT: addi a1, sp, 24
63
- ; RV64-LINUX-NEXT: addi a0, sp, 8
64
- ; RV64-LINUX-NEXT: addi s1, sp, 8
61
+ ; RV64-LINUX-NEXT: addiw a0, a0, 643
62
+ ; RV64-LINUX-NEXT: sw a0, 28(sp)
63
+ ; RV64-LINUX-NEXT: addi a1, sp, 40
64
+ ; RV64-LINUX-NEXT: addi a0, sp, 24
65
+ ; RV64-LINUX-NEXT: sd a0, 16(sp) # 8-byte Folded Spill
65
66
; RV64-LINUX-NEXT: li a2, 0
66
67
; RV64-LINUX-NEXT: call __riscv_flush_icache
67
- ; RV64-LINUX-NEXT: mv a0, s0
68
- ; RV64-LINUX-NEXT: jalr s1
68
+ ; RV64-LINUX-NEXT: ld a0, 8(sp) # 8-byte Folded Reload
69
+ ; RV64-LINUX-NEXT: ld a1, 16(sp) # 8-byte Folded Reload
70
+ ; RV64-LINUX-NEXT: jalr a1
69
71
; RV64-LINUX-NEXT: ld ra, 56(sp) # 8-byte Folded Reload
70
- ; RV64-LINUX-NEXT: ld s0, 48(sp) # 8-byte Folded Reload
71
- ; RV64-LINUX-NEXT: ld s1, 40(sp) # 8-byte Folded Reload
72
72
; RV64-LINUX-NEXT: addi sp, sp, 64
73
73
; RV64-LINUX-NEXT: ret
74
74
%alloca = alloca [32 x i8 ], align 8
0 commit comments