Skip to content

Commit 83178d0

Browse files
committed
[RISCV] Add missing zfh extensions to fixed vector load/store tests
1 parent f396f30 commit 83178d0

File tree

2 files changed

+11
-69
lines changed

2 files changed

+11
-69
lines changed

llvm/test/CodeGen/RISCV/rvv/fixed-vectors-load.ll

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
2-
; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV32 %s
3-
; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV64 %s
2+
; RUN: llc -mtriple=riscv32 -mattr=+v,+zfh,+experimental-zvfh -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV32 %s
3+
; RUN: llc -mtriple=riscv64 -mattr=+v,+zfh,+experimental-zvfh -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV64 %s
44

55
define <5 x i8> @load_v5i8(ptr %p) {
66
; RV32-LABEL: load_v5i8:
@@ -123,29 +123,11 @@ define <6 x i16> @load_v6i16(ptr %p) {
123123
}
124124

125125
define <6 x half> @load_v6f16(ptr %p) {
126-
; RV32-LABEL: load_v6f16:
127-
; RV32: # %bb.0:
128-
; RV32-NEXT: lw a2, 8(a1)
129-
; RV32-NEXT: lw a3, 4(a1)
130-
; RV32-NEXT: lw a1, 0(a1)
131-
; RV32-NEXT: sw a2, 8(a0)
132-
; RV32-NEXT: sw a3, 4(a0)
133-
; RV32-NEXT: sw a1, 0(a0)
134-
; RV32-NEXT: ret
135-
;
136-
; RV64-LABEL: load_v6f16:
137-
; RV64: # %bb.0:
138-
; RV64-NEXT: ld a2, 0(a1)
139-
; RV64-NEXT: vsetivli zero, 2, e64, m1, ta, ma
140-
; RV64-NEXT: ld a1, 8(a1)
141-
; RV64-NEXT: vslide1down.vx v8, v8, a2
142-
; RV64-NEXT: vslide1down.vx v8, v8, a1
143-
; RV64-NEXT: sd a2, 0(a0)
144-
; RV64-NEXT: vsetivli zero, 1, e32, m1, ta, ma
145-
; RV64-NEXT: vslidedown.vi v8, v8, 2
146-
; RV64-NEXT: addi a0, a0, 8
147-
; RV64-NEXT: vse32.v v8, (a0)
148-
; RV64-NEXT: ret
126+
; CHECK-LABEL: load_v6f16:
127+
; CHECK: # %bb.0:
128+
; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
129+
; CHECK-NEXT: vle16.v v8, (a0)
130+
; CHECK-NEXT: ret
149131
%x = load <6 x half>, ptr %p
150132
ret <6 x half> %x
151133
}

llvm/test/CodeGen/RISCV/rvv/fixed-vectors-store.ll

Lines changed: 4 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
2-
; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV32 %s
3-
; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV64 %s
2+
; RUN: llc -mtriple=riscv32 -mattr=+v,+zfh,+experimental-zvfh -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV32 %s
3+
; RUN: llc -mtriple=riscv64 -mattr=+v,+zfh,+experimental-zvfh -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV64 %s
44

55
define void @store_v5i8(ptr %p, <5 x i8> %v) {
66
; CHECK-LABEL: store_v5i8:
@@ -103,56 +103,16 @@ define void @store_v6i16(ptr %p, <6 x i16> %v) {
103103
define void @store_v6f16(ptr %p, <6 x half> %v) {
104104
; RV32-LABEL: store_v6f16:
105105
; RV32: # %bb.0:
106-
; RV32-NEXT: lh a2, 20(a1)
107-
; RV32-NEXT: lhu a3, 16(a1)
108-
; RV32-NEXT: slli a2, a2, 16
109-
; RV32-NEXT: or a2, a3, a2
110-
; RV32-NEXT: lh a3, 12(a1)
111-
; RV32-NEXT: lhu a4, 8(a1)
112-
; RV32-NEXT: lh a5, 4(a1)
113-
; RV32-NEXT: lhu a1, 0(a1)
114-
; RV32-NEXT: slli a3, a3, 16
115-
; RV32-NEXT: or a3, a4, a3
116-
; RV32-NEXT: slli a5, a5, 16
117-
; RV32-NEXT: or a1, a1, a5
118-
; RV32-NEXT: vsetivli zero, 4, e32, m1, ta, ma
119-
; RV32-NEXT: vslide1down.vx v8, v8, a1
120-
; RV32-NEXT: vslide1down.vx v8, v8, a3
121-
; RV32-NEXT: vslide1down.vx v8, v8, a2
122-
; RV32-NEXT: vslidedown.vi v8, v8, 1
123106
; RV32-NEXT: vsetivli zero, 1, e32, m1, ta, ma
124-
; RV32-NEXT: vse32.v v8, (a0)
125107
; RV32-NEXT: vslidedown.vi v9, v8, 2
126108
; RV32-NEXT: addi a1, a0, 8
127109
; RV32-NEXT: vse32.v v9, (a1)
128-
; RV32-NEXT: vslidedown.vi v8, v8, 1
129-
; RV32-NEXT: addi a0, a0, 4
130-
; RV32-NEXT: vse32.v v8, (a0)
110+
; RV32-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
111+
; RV32-NEXT: vse16.v v8, (a0)
131112
; RV32-NEXT: ret
132113
;
133114
; RV64-LABEL: store_v6f16:
134115
; RV64: # %bb.0:
135-
; RV64-NEXT: lhu a2, 16(a1)
136-
; RV64-NEXT: lh a3, 24(a1)
137-
; RV64-NEXT: slli a2, a2, 32
138-
; RV64-NEXT: lh a4, 8(a1)
139-
; RV64-NEXT: lhu a5, 0(a1)
140-
; RV64-NEXT: slli a3, a3, 48
141-
; RV64-NEXT: or a2, a3, a2
142-
; RV64-NEXT: slli a4, a4, 16
143-
; RV64-NEXT: or a4, a5, a4
144-
; RV64-NEXT: slli a4, a4, 32
145-
; RV64-NEXT: lh a3, 40(a1)
146-
; RV64-NEXT: lhu a1, 32(a1)
147-
; RV64-NEXT: srli a4, a4, 32
148-
; RV64-NEXT: or a2, a4, a2
149-
; RV64-NEXT: slli a3, a3, 16
150-
; RV64-NEXT: or a1, a1, a3
151-
; RV64-NEXT: slli a1, a1, 32
152-
; RV64-NEXT: srli a1, a1, 32
153-
; RV64-NEXT: vsetivli zero, 2, e64, m1, ta, ma
154-
; RV64-NEXT: vslide1down.vx v8, v8, a2
155-
; RV64-NEXT: vslide1down.vx v8, v8, a1
156116
; RV64-NEXT: vsetivli zero, 1, e64, m1, ta, ma
157117
; RV64-NEXT: vse64.v v8, (a0)
158118
; RV64-NEXT: vsetivli zero, 1, e32, m1, ta, ma

0 commit comments

Comments
 (0)