|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
2 | 2 | ; RUN: llc -mtriple=riscv32 -mattr=+d,+zfh,+zvfh,+v -target-abi=ilp32d \
|
3 |
| -; RUN: -verify-machineinstrs < %s | FileCheck %s |
| 3 | +; RUN: -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,RV32 |
4 | 4 | ; RUN: llc -mtriple=riscv64 -mattr=+d,+zfh,+zvfh,+v -target-abi=lp64d \
|
5 |
| -; RUN: -verify-machineinstrs < %s | FileCheck %s |
| 5 | +; RUN: -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,RV64 |
6 | 6 |
|
7 | 7 | declare <1 x half> @llvm.experimental.constrained.sitofp.v1f16.v1i1(<1 x i1>, metadata, metadata)
|
8 | 8 | define <1 x half> @vsitofp_v1i1_v1f16(<1 x i1> %va) strictfp {
|
@@ -410,6 +410,33 @@ define <1 x half> @vsitofp_v1i8_v1f16(<1 x i8> %va) strictfp {
|
410 | 410 |
|
411 | 411 | declare <1 x half> @llvm.experimental.constrained.sitofp.v1f16.v1i7(<1 x i7>, metadata, metadata)
|
412 | 412 | define <1 x half> @vsitofp_v1i7_v1f16(<1 x i7> %va) strictfp {
|
| 413 | +; RV32-LABEL: vsitofp_v1i7_v1f16: |
| 414 | +; RV32: # %bb.0: |
| 415 | +; RV32-NEXT: addi sp, sp, -16 |
| 416 | +; RV32-NEXT: .cfi_def_cfa_offset 16 |
| 417 | +; RV32-NEXT: slli a0, a0, 25 |
| 418 | +; RV32-NEXT: srai a0, a0, 25 |
| 419 | +; RV32-NEXT: fcvt.h.w fa5, a0 |
| 420 | +; RV32-NEXT: fsh fa5, 14(sp) |
| 421 | +; RV32-NEXT: addi a0, sp, 14 |
| 422 | +; RV32-NEXT: vsetivli zero, 1, e16, mf4, ta, ma |
| 423 | +; RV32-NEXT: vle16.v v8, (a0) |
| 424 | +; RV32-NEXT: addi sp, sp, 16 |
| 425 | +; RV32-NEXT: ret |
| 426 | +; |
| 427 | +; RV64-LABEL: vsitofp_v1i7_v1f16: |
| 428 | +; RV64: # %bb.0: |
| 429 | +; RV64-NEXT: addi sp, sp, -16 |
| 430 | +; RV64-NEXT: .cfi_def_cfa_offset 16 |
| 431 | +; RV64-NEXT: slli a0, a0, 57 |
| 432 | +; RV64-NEXT: srai a0, a0, 57 |
| 433 | +; RV64-NEXT: fcvt.h.w fa5, a0 |
| 434 | +; RV64-NEXT: fsh fa5, 14(sp) |
| 435 | +; RV64-NEXT: addi a0, sp, 14 |
| 436 | +; RV64-NEXT: vsetivli zero, 1, e16, mf4, ta, ma |
| 437 | +; RV64-NEXT: vle16.v v8, (a0) |
| 438 | +; RV64-NEXT: addi sp, sp, 16 |
| 439 | +; RV64-NEXT: ret |
413 | 440 | %evec = call <1 x half> @llvm.experimental.constrained.sitofp.v1f16.v1i7(<1 x i7> %va, metadata !"round.dynamic", metadata !"fpexcept.strict")
|
414 | 441 | ret <1 x half> %evec
|
415 | 442 | }
|
|
0 commit comments