[llvm] 5a8ce74 - [RISCV] Add test coverage for buildvector of FP values
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Wed May 24 07:47:45 PDT 2023
Author: Philip Reames
Date: 2023-05-24T07:47:23-07:00
New Revision: 5a8ce742fc1861b99ad4610941f955d87d1a3e9d
URL: https://github.com/llvm/llvm-project/commit/5a8ce742fc1861b99ad4610941f955d87d1a3e9d
DIFF: https://github.com/llvm/llvm-project/commit/5a8ce742fc1861b99ad4610941f955d87d1a3e9d.diff
LOG: [RISCV] Add test coverage for buildvector of FP values
Added:
Modified:
llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
index 0d3169d75cb6..d4de78ba1a46 100644
--- a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
+++ b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
@@ -287,3 +287,92 @@ define dso_local void @splat_load_licm(float* %0) {
8: ; preds = %2
ret void
}
+
+define <2 x half> @buildvec_v2f16(half %a, half %b) {
+; CHECK-LABEL: buildvec_v2f16:
+; CHECK: # %bb.0:
+; CHECK-NEXT: addi sp, sp, -16
+; CHECK-NEXT: .cfi_def_cfa_offset 16
+; CHECK-NEXT: fsh fa1, 14(sp)
+; CHECK-NEXT: fsh fa0, 12(sp)
+; CHECK-NEXT: addi a0, sp, 12
+; CHECK-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
+; CHECK-NEXT: vle16.v v8, (a0)
+; CHECK-NEXT: addi sp, sp, 16
+; CHECK-NEXT: ret
+ %v1 = insertelement <2 x half> poison, half %a, i64 0
+ %v2 = insertelement <2 x half> %v1, half %b, i64 1
+ ret <2 x half> %v2
+}
+
+define <2 x float> @buildvec_v2f32(float %a, float %b) {
+; CHECK-LABEL: buildvec_v2f32:
+; CHECK: # %bb.0:
+; CHECK-NEXT: addi sp, sp, -16
+; CHECK-NEXT: .cfi_def_cfa_offset 16
+; CHECK-NEXT: fsw fa1, 12(sp)
+; CHECK-NEXT: fsw fa0, 8(sp)
+; CHECK-NEXT: addi a0, sp, 8
+; CHECK-NEXT: vsetivli zero, 2, e32, mf2, ta, ma
+; CHECK-NEXT: vle32.v v8, (a0)
+; CHECK-NEXT: addi sp, sp, 16
+; CHECK-NEXT: ret
+ %v1 = insertelement <2 x float> poison, float %a, i64 0
+ %v2 = insertelement <2 x float> %v1, float %b, i64 1
+ ret <2 x float> %v2
+}
+
+define <2 x double> @buildvec_v2f64(double %a, double %b) {
+; CHECK-LABEL: buildvec_v2f64:
+; CHECK: # %bb.0:
+; CHECK-NEXT: addi sp, sp, -16
+; CHECK-NEXT: .cfi_def_cfa_offset 16
+; CHECK-NEXT: fsd fa1, 8(sp)
+; CHECK-NEXT: fsd fa0, 0(sp)
+; CHECK-NEXT: mv a0, sp
+; CHECK-NEXT: vsetivli zero, 2, e64, m1, ta, ma
+; CHECK-NEXT: vle64.v v8, (a0)
+; CHECK-NEXT: addi sp, sp, 16
+; CHECK-NEXT: ret
+ %v1 = insertelement <2 x double> poison, double %a, i64 0
+ %v2 = insertelement <2 x double> %v1, double %b, i64 1
+ ret <2 x double> %v2
+}
+
+define <2 x double> @buildvec_v2f64_b(double %a, double %b) {
+; CHECK-LABEL: buildvec_v2f64_b:
+; CHECK: # %bb.0:
+; CHECK-NEXT: addi sp, sp, -16
+; CHECK-NEXT: .cfi_def_cfa_offset 16
+; CHECK-NEXT: fsd fa1, 8(sp)
+; CHECK-NEXT: fsd fa0, 0(sp)
+; CHECK-NEXT: mv a0, sp
+; CHECK-NEXT: vsetivli zero, 2, e64, m1, ta, ma
+; CHECK-NEXT: vle64.v v8, (a0)
+; CHECK-NEXT: addi sp, sp, 16
+; CHECK-NEXT: ret
+ %v1 = insertelement <2 x double> poison, double %b, i64 1
+ %v2 = insertelement <2 x double> %v1, double %a, i64 0
+ ret <2 x double> %v2
+}
+
+define <4 x float> @buildvec_v4f32(float %a, float %b, float %c, float %d) {
+; CHECK-LABEL: buildvec_v4f32:
+; CHECK: # %bb.0:
+; CHECK-NEXT: addi sp, sp, -16
+; CHECK-NEXT: .cfi_def_cfa_offset 16
+; CHECK-NEXT: fsw fa3, 12(sp)
+; CHECK-NEXT: fsw fa2, 8(sp)
+; CHECK-NEXT: fsw fa1, 4(sp)
+; CHECK-NEXT: fsw fa0, 0(sp)
+; CHECK-NEXT: mv a0, sp
+; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, ma
+; CHECK-NEXT: vle32.v v8, (a0)
+; CHECK-NEXT: addi sp, sp, 16
+; CHECK-NEXT: ret
+ %v1 = insertelement <4 x float> poison, float %a, i64 0
+ %v2 = insertelement <4 x float> %v1, float %b, i64 1
+ %v3 = insertelement <4 x float> %v2, float %c, i64 2
+ %v4 = insertelement <4 x float> %v3, float %d, i64 3
+ ret <4 x float> %v4
+}
More information about the llvm-commits
mailing list