File tree 2 files changed +29
-1
lines changed 2 files changed +29
-1
lines changed Original file line number Diff line number Diff line change 1
- ; RUN: llc -march=amdgcn -mcpu=SI < %s
1
+ ; RUN: llc -march=amdgcn -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
2
2
; RUN: llc -march=r600 -mcpu=redwood < %s
3
3
4
4
define void @srem_i32 (i32 addrspace (1 )* %out , i32 addrspace (1 )* %in ) {
@@ -17,6 +17,19 @@ define void @srem_i32_4(i32 addrspace(1)* %out, i32 addrspace(1)* %in) {
17
17
ret void
18
18
}
19
19
20
+ ; FUNC-LABEL: {{^}}srem_i32_7:
21
+ ; SI: v_mov_b32_e32 [[MAGIC:v[0-9]+]], 0x92492493
22
+ ; SI: v_mul_hi_i32 {{v[0-9]+}}, [[MAGIC]],
23
+ ; SI: v_mul_lo_i32
24
+ ; SI: v_sub_i32
25
+ ; SI: s_endpgm
26
+ define void @srem_i32_7 (i32 addrspace (1 )* %out , i32 addrspace (1 )* %in ) {
27
+ %num = load i32 addrspace (1 ) * %in
28
+ %result = srem i32 %num , 7
29
+ store i32 %result , i32 addrspace (1 )* %out
30
+ ret void
31
+ }
32
+
20
33
define void @srem_v2i32 (<2 x i32 > addrspace (1 )* %out , <2 x i32 > addrspace (1 )* %in ) {
21
34
%den_ptr = getelementptr <2 x i32 > addrspace (1 )* %in , i32 1
22
35
%num = load <2 x i32 > addrspace (1 ) * %in
Original file line number Diff line number Diff line change @@ -17,6 +17,21 @@ define void @test_urem_i32(i32 addrspace(1)* %out, i32 addrspace(1)* %in) {
17
17
ret void
18
18
}
19
19
20
+ ; FUNC-LABEL: {{^}}test_urem_i32_7:
21
+ ; SI: v_mov_b32_e32 [[MAGIC:v[0-9]+]], 0x24924925
22
+ ; SI: v_mul_hi_u32 {{v[0-9]+}}, [[MAGIC]]
23
+ ; SI: v_subrev_i32
24
+ ; SI: v_mul_lo_i32
25
+ ; SI: v_sub_i32
26
+ ; SI: buffer_store_dword
27
+ ; SI: s_endpgm
28
+ define void @test_urem_i32_7 (i32 addrspace (1 )* %out , i32 addrspace (1 )* %in ) {
29
+ %num = load i32 addrspace (1 ) * %in
30
+ %result = urem i32 %num , 7
31
+ store i32 %result , i32 addrspace (1 )* %out
32
+ ret void
33
+ }
34
+
20
35
; FUNC-LABEL: {{^}}test_urem_v2i32:
21
36
; SI: s_endpgm
22
37
; EG: CF_END
You can’t perform that action at this time.
0 commit comments