@@ -6,28 +6,28 @@ define amdgpu_kernel void @s_add_u64(ptr addrspace(1) %out, i64 %a, i64 %b) {
6
6
; GFX11-LABEL: s_add_u64:
7
7
; GFX11: ; %bb.0: ; %entry
8
8
; GFX11-NEXT: s_clause 0x1
9
- ; GFX11-NEXT: s_load_b128 s[0:3 ], s[4:5 ], 0x24
10
- ; GFX11-NEXT: s_load_b64 s[4:5 ], s[4:5 ], 0x34
9
+ ; GFX11-NEXT: s_load_b128 s[4:7 ], s[2:3 ], 0x24
10
+ ; GFX11-NEXT: s_load_b64 s[0:1 ], s[2:3 ], 0x34
11
11
; GFX11-NEXT: v_mov_b32_e32 v2, 0
12
12
; GFX11-NEXT: s_waitcnt lgkmcnt(0)
13
- ; GFX11-NEXT: s_add_u32 s2, s2, s4
14
- ; GFX11-NEXT: s_addc_u32 s3, s3, s5
13
+ ; GFX11-NEXT: s_add_u32 s0, s6, s0
14
+ ; GFX11-NEXT: s_addc_u32 s1, s7, s1
15
15
; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1)
16
- ; GFX11-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
17
- ; GFX11-NEXT: global_store_b64 v2, v[0:1], s[0:1 ]
16
+ ; GFX11-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
17
+ ; GFX11-NEXT: global_store_b64 v2, v[0:1], s[4:5 ]
18
18
; GFX11-NEXT: s_endpgm
19
19
;
20
20
; GFX12-LABEL: s_add_u64:
21
21
; GFX12: ; %bb.0: ; %entry
22
22
; GFX12-NEXT: s_clause 0x1
23
- ; GFX12-NEXT: s_load_b128 s[0:3 ], s[4:5 ], 0x24
24
- ; GFX12-NEXT: s_load_b64 s[4:5 ], s[4:5 ], 0x34
23
+ ; GFX12-NEXT: s_load_b128 s[4:7 ], s[2:3 ], 0x24
24
+ ; GFX12-NEXT: s_load_b64 s[0:1 ], s[2:3 ], 0x34
25
25
; GFX12-NEXT: v_mov_b32_e32 v2, 0
26
26
; GFX12-NEXT: s_wait_kmcnt 0x0
27
- ; GFX12-NEXT: s_add_nc_u64 s[2:3 ], s[2:3 ], s[4:5 ]
27
+ ; GFX12-NEXT: s_add_nc_u64 s[0:1 ], s[6:7 ], s[0:1 ]
28
28
; GFX12-NEXT: s_delay_alu instid0(SALU_CYCLE_1)
29
- ; GFX12-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
30
- ; GFX12-NEXT: global_store_b64 v2, v[0:1], s[0:1 ]
29
+ ; GFX12-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
30
+ ; GFX12-NEXT: global_store_b64 v2, v[0:1], s[4:5 ]
31
31
; GFX12-NEXT: s_endpgm
32
32
entry:
33
33
%add = add i64 %a , %b
@@ -52,28 +52,28 @@ define amdgpu_kernel void @s_sub_u64(ptr addrspace(1) %out, i64 %a, i64 %b) {
52
52
; GFX11-LABEL: s_sub_u64:
53
53
; GFX11: ; %bb.0: ; %entry
54
54
; GFX11-NEXT: s_clause 0x1
55
- ; GFX11-NEXT: s_load_b128 s[0:3 ], s[4:5 ], 0x24
56
- ; GFX11-NEXT: s_load_b64 s[4:5 ], s[4:5 ], 0x34
55
+ ; GFX11-NEXT: s_load_b128 s[4:7 ], s[2:3 ], 0x24
56
+ ; GFX11-NEXT: s_load_b64 s[0:1 ], s[2:3 ], 0x34
57
57
; GFX11-NEXT: v_mov_b32_e32 v2, 0
58
58
; GFX11-NEXT: s_waitcnt lgkmcnt(0)
59
- ; GFX11-NEXT: s_sub_u32 s2, s2, s4
60
- ; GFX11-NEXT: s_subb_u32 s3, s3, s5
59
+ ; GFX11-NEXT: s_sub_u32 s0, s6, s0
60
+ ; GFX11-NEXT: s_subb_u32 s1, s7, s1
61
61
; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1)
62
- ; GFX11-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
63
- ; GFX11-NEXT: global_store_b64 v2, v[0:1], s[0:1 ]
62
+ ; GFX11-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
63
+ ; GFX11-NEXT: global_store_b64 v2, v[0:1], s[4:5 ]
64
64
; GFX11-NEXT: s_endpgm
65
65
;
66
66
; GFX12-LABEL: s_sub_u64:
67
67
; GFX12: ; %bb.0: ; %entry
68
68
; GFX12-NEXT: s_clause 0x1
69
- ; GFX12-NEXT: s_load_b128 s[0:3 ], s[4:5 ], 0x24
70
- ; GFX12-NEXT: s_load_b64 s[4:5 ], s[4:5 ], 0x34
69
+ ; GFX12-NEXT: s_load_b128 s[4:7 ], s[2:3 ], 0x24
70
+ ; GFX12-NEXT: s_load_b64 s[0:1 ], s[2:3 ], 0x34
71
71
; GFX12-NEXT: v_mov_b32_e32 v2, 0
72
72
; GFX12-NEXT: s_wait_kmcnt 0x0
73
- ; GFX12-NEXT: s_sub_nc_u64 s[2:3 ], s[2:3 ], s[4:5 ]
73
+ ; GFX12-NEXT: s_sub_nc_u64 s[0:1 ], s[6:7 ], s[0:1 ]
74
74
; GFX12-NEXT: s_delay_alu instid0(SALU_CYCLE_1)
75
- ; GFX12-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
76
- ; GFX12-NEXT: global_store_b64 v2, v[0:1], s[0:1 ]
75
+ ; GFX12-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
76
+ ; GFX12-NEXT: global_store_b64 v2, v[0:1], s[4:5 ]
77
77
; GFX12-NEXT: s_endpgm
78
78
entry:
79
79
%sub = sub i64 %a , %b
0 commit comments