Skip to content

Commit ce143a0

Browse files
committed
fixup! [OpenCL][RISCV] Support SPIR_KERNEL calling convention
Simplify test
1 parent 280e142 commit ce143a0

File tree

1 file changed

+4
-74
lines changed

1 file changed

+4
-74
lines changed

llvm/test/CodeGen/RISCV/spir-kernel-cc.ll

Lines changed: 4 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -2,85 +2,15 @@
22
; RUN: llc -mtriple=riscv32 -mattr=+f,+d < %s | FileCheck %s -check-prefix=RV32
33
; RUN: llc -mtriple=riscv64 -mattr=+f,+d < %s | FileCheck %s -check-prefix=RV64
44

5-
; Check the SPIR_KERNEL call convention work
5+
; Check the SPIR_KERNEL call convention works.
66

7-
declare dso_local i64 @_Z13get_global_idj(i32 noundef signext)
8-
9-
define dso_local spir_kernel void @foo(ptr nocapture noundef readonly align 4 %a, ptr nocapture noundef readonly align 4 %b, ptr nocapture noundef writeonly align 4 %c) {
7+
define dso_local spir_kernel void @foo() {
108
; RV32-LABEL: foo:
11-
; RV32: # %bb.0: # %entry
12-
; RV32-NEXT: addi sp, sp, -16
13-
; RV32-NEXT: .cfi_def_cfa_offset 16
14-
; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
15-
; RV32-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
16-
; RV32-NEXT: sw s1, 4(sp) # 4-byte Folded Spill
17-
; RV32-NEXT: sw s2, 0(sp) # 4-byte Folded Spill
18-
; RV32-NEXT: .cfi_offset ra, -4
19-
; RV32-NEXT: .cfi_offset s0, -8
20-
; RV32-NEXT: .cfi_offset s1, -12
21-
; RV32-NEXT: .cfi_offset s2, -16
22-
; RV32-NEXT: mv s0, a2
23-
; RV32-NEXT: mv s1, a1
24-
; RV32-NEXT: mv s2, a0
25-
; RV32-NEXT: li a0, 0
26-
; RV32-NEXT: call _Z13get_global_idj
27-
; RV32-NEXT: slli a0, a0, 2
28-
; RV32-NEXT: add s2, s2, a0
29-
; RV32-NEXT: flw fa5, 0(s2)
30-
; RV32-NEXT: add s1, s1, a0
31-
; RV32-NEXT: flw fa4, 0(s1)
32-
; RV32-NEXT: fadd.s fa5, fa5, fa4
33-
; RV32-NEXT: add a0, s0, a0
34-
; RV32-NEXT: fsw fa5, 0(a0)
35-
; RV32-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
36-
; RV32-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
37-
; RV32-NEXT: lw s1, 4(sp) # 4-byte Folded Reload
38-
; RV32-NEXT: lw s2, 0(sp) # 4-byte Folded Reload
39-
; RV32-NEXT: addi sp, sp, 16
9+
; RV32: # %bb.0:
4010
; RV32-NEXT: ret
4111
;
4212
; RV64-LABEL: foo:
43-
; RV64: # %bb.0: # %entry
44-
; RV64-NEXT: addi sp, sp, -32
45-
; RV64-NEXT: .cfi_def_cfa_offset 32
46-
; RV64-NEXT: sd ra, 24(sp) # 8-byte Folded Spill
47-
; RV64-NEXT: sd s0, 16(sp) # 8-byte Folded Spill
48-
; RV64-NEXT: sd s1, 8(sp) # 8-byte Folded Spill
49-
; RV64-NEXT: sd s2, 0(sp) # 8-byte Folded Spill
50-
; RV64-NEXT: .cfi_offset ra, -8
51-
; RV64-NEXT: .cfi_offset s0, -16
52-
; RV64-NEXT: .cfi_offset s1, -24
53-
; RV64-NEXT: .cfi_offset s2, -32
54-
; RV64-NEXT: mv s0, a2
55-
; RV64-NEXT: mv s1, a1
56-
; RV64-NEXT: mv s2, a0
57-
; RV64-NEXT: li a0, 0
58-
; RV64-NEXT: call _Z13get_global_idj
59-
; RV64-NEXT: sext.w a0, a0
60-
; RV64-NEXT: slli a0, a0, 2
61-
; RV64-NEXT: add s2, s2, a0
62-
; RV64-NEXT: flw fa5, 0(s2)
63-
; RV64-NEXT: add s1, s1, a0
64-
; RV64-NEXT: flw fa4, 0(s1)
65-
; RV64-NEXT: fadd.s fa5, fa5, fa4
66-
; RV64-NEXT: add a0, s0, a0
67-
; RV64-NEXT: fsw fa5, 0(a0)
68-
; RV64-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
69-
; RV64-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
70-
; RV64-NEXT: ld s1, 8(sp) # 8-byte Folded Reload
71-
; RV64-NEXT: ld s2, 0(sp) # 8-byte Folded Reload
72-
; RV64-NEXT: addi sp, sp, 32
13+
; RV64: # %bb.0:
7314
; RV64-NEXT: ret
74-
entry:
75-
%call = tail call i64 @_Z13get_global_idj(i32 noundef signext 0)
76-
%sext = shl i64 %call, 32
77-
%idxprom = ashr exact i64 %sext, 32
78-
%arrayidx = getelementptr inbounds float, ptr %a, i64 %idxprom
79-
%0 = load float, ptr %arrayidx, align 4
80-
%arrayidx2 = getelementptr inbounds float, ptr %b, i64 %idxprom
81-
%1 = load float, ptr %arrayidx2, align 4
82-
%add = fadd float %0, %1
83-
%arrayidx4 = getelementptr inbounds float, ptr %c, i64 %idxprom
84-
store float %add, ptr %arrayidx4, align 4
8515
ret void
8616
}

0 commit comments

Comments
 (0)