Skip to content

Commit ae6549a

Browse files
committed
[RISCV] Add build vector coverage for rva22u + V
1 parent dd5df27 commit ae6549a

File tree

2 files changed

+783
-195
lines changed

2 files changed

+783
-195
lines changed

llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
22

33
; RUN: llc -mtriple=riscv32 -target-abi=ilp32d -mattr=+v,+zfh,+zvfh,+f,+d -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,RV32
4-
; RUN: llc -mtriple=riscv64 -target-abi=lp64d -mattr=+v,+zfh,+zvfh,+f,+d -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,RV64
4+
; RUN: llc -mtriple=riscv64 -target-abi=lp64d -mattr=+v,+zfh,+zvfh,+f,+d -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,RV64,RV64V
5+
; RUN: llc -mtriple=riscv64 -target-abi=lp64d -mattr=+v,+zfh,+zvfh,+rva22u64 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,RV64,RVA22U64
56

67
; Tests that a floating-point build_vector doesn't try and generate a VID
78
; instruction
@@ -206,19 +207,47 @@ define <8 x float> @splat_idx_v8f32(<8 x float> %v, i64 %idx) {
206207

207208
; Test that we pull the vlse of the constant pool out of the loop.
208209
define dso_local void @splat_load_licm(ptr %0) {
209-
; CHECK-LABEL: splat_load_licm:
210-
; CHECK: # %bb.0:
211-
; CHECK-NEXT: lui a1, 1
212-
; CHECK-NEXT: add a1, a0, a1
213-
; CHECK-NEXT: lui a2, 263168
214-
; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, ma
215-
; CHECK-NEXT: vmv.v.x v8, a2
216-
; CHECK-NEXT: .LBB12_1: # =>This Inner Loop Header: Depth=1
217-
; CHECK-NEXT: vse32.v v8, (a0)
218-
; CHECK-NEXT: addi a0, a0, 16
219-
; CHECK-NEXT: bne a0, a1, .LBB12_1
220-
; CHECK-NEXT: # %bb.2:
221-
; CHECK-NEXT: ret
210+
; RV32-LABEL: splat_load_licm:
211+
; RV32: # %bb.0:
212+
; RV32-NEXT: lui a1, 1
213+
; RV32-NEXT: add a1, a0, a1
214+
; RV32-NEXT: lui a2, 263168
215+
; RV32-NEXT: vsetivli zero, 4, e32, m1, ta, ma
216+
; RV32-NEXT: vmv.v.x v8, a2
217+
; RV32-NEXT: .LBB12_1: # =>This Inner Loop Header: Depth=1
218+
; RV32-NEXT: vse32.v v8, (a0)
219+
; RV32-NEXT: addi a0, a0, 16
220+
; RV32-NEXT: bne a0, a1, .LBB12_1
221+
; RV32-NEXT: # %bb.2:
222+
; RV32-NEXT: ret
223+
;
224+
; RV64V-LABEL: splat_load_licm:
225+
; RV64V: # %bb.0:
226+
; RV64V-NEXT: lui a1, 1
227+
; RV64V-NEXT: add a1, a0, a1
228+
; RV64V-NEXT: lui a2, 263168
229+
; RV64V-NEXT: vsetivli zero, 4, e32, m1, ta, ma
230+
; RV64V-NEXT: vmv.v.x v8, a2
231+
; RV64V-NEXT: .LBB12_1: # =>This Inner Loop Header: Depth=1
232+
; RV64V-NEXT: vse32.v v8, (a0)
233+
; RV64V-NEXT: addi a0, a0, 16
234+
; RV64V-NEXT: bne a0, a1, .LBB12_1
235+
; RV64V-NEXT: # %bb.2:
236+
; RV64V-NEXT: ret
237+
;
238+
; RVA22U64-LABEL: splat_load_licm:
239+
; RVA22U64: # %bb.0:
240+
; RVA22U64-NEXT: lui a1, 1
241+
; RVA22U64-NEXT: add a1, a1, a0
242+
; RVA22U64-NEXT: lui a2, 263168
243+
; RVA22U64-NEXT: vsetivli zero, 4, e32, m1, ta, ma
244+
; RVA22U64-NEXT: vmv.v.x v8, a2
245+
; RVA22U64-NEXT: .LBB12_1: # =>This Inner Loop Header: Depth=1
246+
; RVA22U64-NEXT: vse32.v v8, (a0)
247+
; RVA22U64-NEXT: addi a0, a0, 16
248+
; RVA22U64-NEXT: bne a0, a1, .LBB12_1
249+
; RVA22U64-NEXT: # %bb.2:
250+
; RVA22U64-NEXT: ret
222251
br label %2
223252

224253
2: ; preds = %2, %1

0 commit comments

Comments
 (0)