|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
2 | 2 | ; RUN: llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh,+zvfbfmin,+optimized-zero-stride-load \
|
3 | 3 | ; RUN: -verify-machineinstrs < %s \
|
4 |
| -; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV32,CHECK-OPT,CHECK-OPT-RV32 |
| 4 | +; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV32,CHECK-OPT,CHECK-OPT-ZVFH,CHECK-OPT-RV32 |
5 | 5 | ; RUN: llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh,+zvfbfmin,+optimized-zero-stride-load \
|
6 | 6 | ; RUN: -verify-machineinstrs < %s \
|
7 |
| -; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV64,CHECK-OPT,CHECK-OPT-RV64 |
| 7 | +; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV64,CHECK-OPT,CHECK-OPT-ZVFH,CHECK-OPT-RV64 |
8 | 8 | ; RUN: llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh,+zvfbfmin \
|
9 | 9 | ; RUN: -verify-machineinstrs < %s \
|
10 |
| -; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV32,CHECK-NO-OPT,CHECK-NO-OPT-RV32 |
| 10 | +; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV32,CHECK-NO-OPT,CHECK-NO-OPT-ZVFH,CHECK-NO-OPT-RV32 |
11 | 11 | ; RUN: llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh,+zvfbfmin \
|
12 | 12 | ; RUN: -verify-machineinstrs < %s \
|
13 |
| -; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV64,CHECK-NO-OPT,CHECK-NO-OPT-RV64 |
| 13 | +; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV64,CHECK-NO-OPT,CHECK-NO-OPT-ZVFH,CHECK-NO-OPT-RV64 |
14 | 14 | ; RUN: llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfhmin,+zvfbfmin,+optimized-zero-stride-load \
|
15 | 15 | ; RUN: -verify-machineinstrs < %s \
|
16 |
| -; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV32,CHECK-OPT,CHECK-OPT-RV32 |
| 16 | +; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV32,CHECK-OPT,CHECK-OPT-ZVFHMIN,CHECK-OPT-RV32 |
17 | 17 | ; RUN: llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfhmin,+zvfbfmin,+optimized-zero-stride-load \
|
18 | 18 | ; RUN: -verify-machineinstrs < %s \
|
19 |
| -; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV64,CHECK-OPT,CHECK-OPT-RV64 |
| 19 | +; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV64,CHECK-OPT,CHECK-OPT-ZVFHMIN,CHECK-OPT-RV64 |
20 | 20 | ; RUN: llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfhmin,+zvfbfmin \
|
21 | 21 | ; RUN: -verify-machineinstrs < %s \
|
22 |
| -; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV32,CHECK-NO-OPT,CHECK-NO-OPT-RV32 |
| 22 | +; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV32,CHECK-NO-OPT,CHECK-NO-OPT-ZVFHMIN,CHECK-NO-OPT-RV32 |
23 | 23 | ; RUN: llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfhmin,+zvfbfmin \
|
24 | 24 | ; RUN: -verify-machineinstrs < %s \
|
25 |
| -; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV64,CHECK-NO-OPT,CHECK-NO-OPT-RV64 |
| 25 | +; RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-RV64,CHECK-NO-OPT,CHECK-NO-OPT-ZVFHMIN,CHECK-NO-OPT-RV64 |
26 | 26 |
|
27 | 27 | declare <vscale x 1 x i8> @llvm.experimental.vp.strided.load.nxv1i8.p0.i8(ptr, i8, <vscale x 1 x i1>, i32)
|
28 | 28 |
|
@@ -887,6 +887,34 @@ define <vscale x 1 x i8> @zero_strided_unmasked_vpload_nxv1i8_i8(ptr %ptr) {
|
887 | 887 |
|
888 | 888 | ; Test unmasked float zero strided
|
889 | 889 | define <vscale x 1 x half> @zero_strided_unmasked_vpload_nxv1f16(ptr %ptr) {
|
| 890 | +; CHECK-OPT-ZVFH-LABEL: zero_strided_unmasked_vpload_nxv1f16: |
| 891 | +; CHECK-OPT-ZVFH: # %bb.0: |
| 892 | +; CHECK-OPT-ZVFH-NEXT: vsetivli zero, 4, e16, mf4, ta, ma |
| 893 | +; CHECK-OPT-ZVFH-NEXT: vlse16.v v8, (a0), zero |
| 894 | +; CHECK-OPT-ZVFH-NEXT: ret |
| 895 | +; |
| 896 | +; CHECK-NO-OPT-ZVFH-LABEL: zero_strided_unmasked_vpload_nxv1f16: |
| 897 | +; CHECK-NO-OPT-ZVFH: # %bb.0: |
| 898 | +; CHECK-NO-OPT-ZVFH-NEXT: flh fa5, 0(a0) |
| 899 | +; CHECK-NO-OPT-ZVFH-NEXT: vsetivli zero, 4, e16, mf4, ta, ma |
| 900 | +; CHECK-NO-OPT-ZVFH-NEXT: vfmv.v.f v8, fa5 |
| 901 | +; CHECK-NO-OPT-ZVFH-NEXT: ret |
| 902 | +; |
| 903 | +; CHECK-OPT-ZVFHMIN-LABEL: zero_strided_unmasked_vpload_nxv1f16: |
| 904 | +; CHECK-OPT-ZVFHMIN: # %bb.0: |
| 905 | +; CHECK-OPT-ZVFHMIN-NEXT: flh fa5, 0(a0) |
| 906 | +; CHECK-OPT-ZVFHMIN-NEXT: fmv.x.h a0, fa5 |
| 907 | +; CHECK-OPT-ZVFHMIN-NEXT: vsetivli zero, 4, e16, mf4, ta, ma |
| 908 | +; CHECK-OPT-ZVFHMIN-NEXT: vmv.v.x v8, a0 |
| 909 | +; CHECK-OPT-ZVFHMIN-NEXT: ret |
| 910 | +; |
| 911 | +; CHECK-NO-OPT-ZVFHMIN-LABEL: zero_strided_unmasked_vpload_nxv1f16: |
| 912 | +; CHECK-NO-OPT-ZVFHMIN: # %bb.0: |
| 913 | +; CHECK-NO-OPT-ZVFHMIN-NEXT: flh fa5, 0(a0) |
| 914 | +; CHECK-NO-OPT-ZVFHMIN-NEXT: fmv.x.h a0, fa5 |
| 915 | +; CHECK-NO-OPT-ZVFHMIN-NEXT: vsetivli zero, 4, e16, mf4, ta, ma |
| 916 | +; CHECK-NO-OPT-ZVFHMIN-NEXT: vmv.v.x v8, a0 |
| 917 | +; CHECK-NO-OPT-ZVFHMIN-NEXT: ret |
890 | 918 | %load = call <vscale x 1 x half> @llvm.experimental.vp.strided.load.nxv1f16.p0.i32(ptr %ptr, i32 0, <vscale x 1 x i1> splat (i1 true), i32 4)
|
891 | 919 | ret <vscale x 1 x half> %load
|
892 | 920 | }
|
|
0 commit comments