|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
2 | 2 | ; RUN: llc -mtriple=riscv32 -mattr=+f,+d,+zfh,+zvfh,+v -target-abi ilp32d -verify-machineinstrs < %s \
|
3 |
| -; RUN: | FileCheck %s --check-prefixes=CHECK,OPTIMIZED |
| 3 | +; RUN: | FileCheck %s --check-prefixes=CHECK,ZVFH,OPTIMIZED |
4 | 4 | ; RUN: llc -mtriple=riscv64 -mattr=+f,+d,+zfh,+zvfh,+v -target-abi lp64d -verify-machineinstrs < %s \
|
5 |
| -; RUN: | FileCheck %s --check-prefixes=CHECK,OPTIMIZED |
| 5 | +; RUN: | FileCheck %s --check-prefixes=CHECK,ZVFH,OPTIMIZED |
6 | 6 | ; RUN: llc -mtriple=riscv32 -mattr=+f,+d,+zfh,+zvfh,+v,+no-optimized-zero-stride-load -target-abi ilp32d -verify-machineinstrs < %s \
|
7 |
| -; RUN: | FileCheck %s --check-prefixes=CHECK,NOT-OPTIMIZED |
| 7 | +; RUN: | FileCheck %s --check-prefixes=CHECK,ZVFH,NOT-OPTIMIZED |
8 | 8 | ; RUN: llc -mtriple=riscv64 -mattr=+f,+d,+zfh,+zvfh,+v,+no-optimized-zero-stride-load -target-abi lp64d -verify-machineinstrs < %s \
|
9 |
| -; RUN: | FileCheck %s --check-prefixes=CHECK,NOT-OPTIMIZED |
| 9 | +; RUN: | FileCheck %s --check-prefixes=CHECK,ZVFH,NOT-OPTIMIZED |
| 10 | +; RUN: llc -mtriple=riscv32 -mattr=+f,+d,+zfh,+zvfhmin,+v -target-abi ilp32d -verify-machineinstrs < %s \ |
| 11 | +; RUN: | FileCheck %s --check-prefixes=CHECK,ZVFHMIN,OPTIMIZED |
| 12 | +; RUN: llc -mtriple=riscv64 -mattr=+f,+d,+zfh,+zvfhmin,+v -target-abi lp64d -verify-machineinstrs < %s \ |
| 13 | +; RUN: | FileCheck %s --check-prefixes=CHECK,ZVFHMIN,OPTIMIZED |
| 14 | +; RUN: llc -mtriple=riscv32 -mattr=+f,+d,+zfh,+zvfhmin,+v,+no-optimized-zero-stride-load -target-abi ilp32d -verify-machineinstrs < %s \ |
| 15 | +; RUN: | FileCheck %s --check-prefixes=CHECK,ZVFHMIN,NOT-OPTIMIZED |
| 16 | +; RUN: llc -mtriple=riscv64 -mattr=+f,+d,+zfh,+zvfhmin,+v,+no-optimized-zero-stride-load -target-abi lp64d -verify-machineinstrs < %s \ |
| 17 | +; RUN: | FileCheck %s --check-prefixes=CHECK,ZVFHMIN,NOT-OPTIMIZED |
10 | 18 |
|
11 | 19 | define <vscale x 8 x half> @vsplat_nxv8f16(half %f) {
|
12 |
| -; CHECK-LABEL: vsplat_nxv8f16: |
13 |
| -; CHECK: # %bb.0: |
14 |
| -; CHECK-NEXT: vsetvli a0, zero, e16, m2, ta, ma |
15 |
| -; CHECK-NEXT: vfmv.v.f v8, fa0 |
16 |
| -; CHECK-NEXT: ret |
| 20 | +; ZVFH-LABEL: vsplat_nxv8f16: |
| 21 | +; ZVFH: # %bb.0: |
| 22 | +; ZVFH-NEXT: vsetvli a0, zero, e16, m2, ta, ma |
| 23 | +; ZVFH-NEXT: vfmv.v.f v8, fa0 |
| 24 | +; ZVFH-NEXT: ret |
| 25 | +; |
| 26 | +; ZVFHMIN-LABEL: vsplat_nxv8f16: |
| 27 | +; ZVFHMIN: # %bb.0: |
| 28 | +; ZVFHMIN-NEXT: fcvt.s.h fa5, fa0 |
| 29 | +; ZVFHMIN-NEXT: vsetvli a0, zero, e32, m4, ta, ma |
| 30 | +; ZVFHMIN-NEXT: vfmv.v.f v12, fa5 |
| 31 | +; ZVFHMIN-NEXT: vsetvli zero, zero, e16, m2, ta, ma |
| 32 | +; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v12 |
| 33 | +; ZVFHMIN-NEXT: ret |
17 | 34 | %head = insertelement <vscale x 8 x half> poison, half %f, i32 0
|
18 | 35 | %splat = shufflevector <vscale x 8 x half> %head, <vscale x 8 x half> poison, <vscale x 8 x i32> zeroinitializer
|
19 | 36 | ret <vscale x 8 x half> %splat
|
|
0 commit comments