|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
2 |
| -; RUN: llc -mtriple=riscv32 -target-abi=ilp32d -mattr=+v,+zfh,+zvfh,+f,+d -riscv-v-fixed-length-vector-lmul-max=8 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,LMULMAX8,LMULMAX8RV32 |
3 |
| -; RUN: llc -mtriple=riscv64 -target-abi=lp64d -mattr=+v,+zfh,+zvfh,+f,+d -riscv-v-fixed-length-vector-lmul-max=8 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,LMULMAX8,LMULMAX8RV64 |
4 |
| -; RUN: llc -mtriple=riscv32 -target-abi=ilp32d -mattr=+v,+zfh,+zvfh,+f,+d -riscv-v-fixed-length-vector-lmul-max=1 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,LMULMAX1,LMULMAX1RV32 |
5 |
| -; RUN: llc -mtriple=riscv64 -target-abi=lp64d -mattr=+v,+zfh,+zvfh,+f,+d -riscv-v-fixed-length-vector-lmul-max=1 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,LMULMAX1,LMULMAX1RV64 |
| 2 | +; RUN: llc -mtriple=riscv32 -target-abi=ilp32d -mattr=+v,+zfh,+zvfh,+f,+d -riscv-v-fixed-length-vector-lmul-max=8 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,LMULMAX8,LMULMAX8RV32,LMULMAX8RV32ZVFH |
| 3 | +; RUN: llc -mtriple=riscv64 -target-abi=lp64d -mattr=+v,+zfh,+zvfh,+f,+d -riscv-v-fixed-length-vector-lmul-max=8 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,LMULMAX8,LMULMAX8RV64,LMULMAX8RV64ZVFH |
| 4 | +; RUN: llc -mtriple=riscv32 -target-abi=ilp32d -mattr=+v,+zfh,+zvfh,+f,+d -riscv-v-fixed-length-vector-lmul-max=1 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,LMULMAX1,LMULMAX1RV32,LMULMAX1RV32ZVFH |
| 5 | +; RUN: llc -mtriple=riscv64 -target-abi=lp64d -mattr=+v,+zfh,+zvfh,+f,+d -riscv-v-fixed-length-vector-lmul-max=1 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,LMULMAX1,LMULMAX1RV64,LMULMAX1RV64ZVFH |
| 6 | +; RUN: llc -mtriple=riscv32 -target-abi=ilp32d -mattr=+v,+zfh,+zvfhmin,+f,+d -riscv-v-fixed-length-vector-lmul-max=8 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,LMULMAX8,LMULMAX8RV32,LMULMAX8RV32ZVFHMIN |
| 7 | +; RUN: llc -mtriple=riscv64 -target-abi=lp64d -mattr=+v,+zfh,+zvfhmin,+f,+d -riscv-v-fixed-length-vector-lmul-max=8 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,LMULMAX8,LMULMAX8RV64,LMULMAX8RV64ZVFHMIN |
| 8 | +; RUN: llc -mtriple=riscv32 -target-abi=ilp32d -mattr=+v,+zfh,+zvfhmin,+f,+d -riscv-v-fixed-length-vector-lmul-max=1 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,LMULMAX1,LMULMAX1RV32,LMULMAX1RV32ZVFHMIN |
| 9 | +; RUN: llc -mtriple=riscv64 -target-abi=lp64d -mattr=+v,+zfh,+zvfhmin,+f,+d -riscv-v-fixed-length-vector-lmul-max=1 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,LMULMAX1,LMULMAX1RV64,LMULMAX1RV64ZVFHMIN |
6 | 10 |
|
7 | 11 | define void @fp2si_v2f32_v2i32(ptr %x, ptr %y) {
|
8 | 12 | ; CHECK-LABEL: fp2si_v2f32_v2i32:
|
@@ -589,25 +593,145 @@ define void @fp2ui_v2f16_v2i64(ptr %x, ptr %y) {
|
589 | 593 | }
|
590 | 594 |
|
591 | 595 | define <2 x i1> @fp2si_v2f16_v2i1(<2 x half> %x) {
|
592 |
| -; CHECK-LABEL: fp2si_v2f16_v2i1: |
593 |
| -; CHECK: # %bb.0: |
594 |
| -; CHECK-NEXT: vsetivli zero, 2, e8, mf8, ta, ma |
595 |
| -; CHECK-NEXT: vfncvt.rtz.x.f.w v9, v8 |
596 |
| -; CHECK-NEXT: vand.vi v8, v9, 1 |
597 |
| -; CHECK-NEXT: vmsne.vi v0, v8, 0 |
598 |
| -; CHECK-NEXT: ret |
| 596 | +; LMULMAX8RV32ZVFH-LABEL: fp2si_v2f16_v2i1: |
| 597 | +; LMULMAX8RV32ZVFH: # %bb.0: |
| 598 | +; LMULMAX8RV32ZVFH-NEXT: vsetivli zero, 2, e8, mf8, ta, ma |
| 599 | +; LMULMAX8RV32ZVFH-NEXT: vfncvt.rtz.x.f.w v9, v8 |
| 600 | +; LMULMAX8RV32ZVFH-NEXT: vand.vi v8, v9, 1 |
| 601 | +; LMULMAX8RV32ZVFH-NEXT: vmsne.vi v0, v8, 0 |
| 602 | +; LMULMAX8RV32ZVFH-NEXT: ret |
| 603 | +; |
| 604 | +; LMULMAX8RV64ZVFH-LABEL: fp2si_v2f16_v2i1: |
| 605 | +; LMULMAX8RV64ZVFH: # %bb.0: |
| 606 | +; LMULMAX8RV64ZVFH-NEXT: vsetivli zero, 2, e8, mf8, ta, ma |
| 607 | +; LMULMAX8RV64ZVFH-NEXT: vfncvt.rtz.x.f.w v9, v8 |
| 608 | +; LMULMAX8RV64ZVFH-NEXT: vand.vi v8, v9, 1 |
| 609 | +; LMULMAX8RV64ZVFH-NEXT: vmsne.vi v0, v8, 0 |
| 610 | +; LMULMAX8RV64ZVFH-NEXT: ret |
| 611 | +; |
| 612 | +; LMULMAX1RV32ZVFH-LABEL: fp2si_v2f16_v2i1: |
| 613 | +; LMULMAX1RV32ZVFH: # %bb.0: |
| 614 | +; LMULMAX1RV32ZVFH-NEXT: vsetivli zero, 2, e8, mf8, ta, ma |
| 615 | +; LMULMAX1RV32ZVFH-NEXT: vfncvt.rtz.x.f.w v9, v8 |
| 616 | +; LMULMAX1RV32ZVFH-NEXT: vand.vi v8, v9, 1 |
| 617 | +; LMULMAX1RV32ZVFH-NEXT: vmsne.vi v0, v8, 0 |
| 618 | +; LMULMAX1RV32ZVFH-NEXT: ret |
| 619 | +; |
| 620 | +; LMULMAX1RV64ZVFH-LABEL: fp2si_v2f16_v2i1: |
| 621 | +; LMULMAX1RV64ZVFH: # %bb.0: |
| 622 | +; LMULMAX1RV64ZVFH-NEXT: vsetivli zero, 2, e8, mf8, ta, ma |
| 623 | +; LMULMAX1RV64ZVFH-NEXT: vfncvt.rtz.x.f.w v9, v8 |
| 624 | +; LMULMAX1RV64ZVFH-NEXT: vand.vi v8, v9, 1 |
| 625 | +; LMULMAX1RV64ZVFH-NEXT: vmsne.vi v0, v8, 0 |
| 626 | +; LMULMAX1RV64ZVFH-NEXT: ret |
| 627 | +; |
| 628 | +; LMULMAX8RV32ZVFHMIN-LABEL: fp2si_v2f16_v2i1: |
| 629 | +; LMULMAX8RV32ZVFHMIN: # %bb.0: |
| 630 | +; LMULMAX8RV32ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma |
| 631 | +; LMULMAX8RV32ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8 |
| 632 | +; LMULMAX8RV32ZVFHMIN-NEXT: vfncvt.rtz.x.f.w v8, v9 |
| 633 | +; LMULMAX8RV32ZVFHMIN-NEXT: vand.vi v8, v8, 1 |
| 634 | +; LMULMAX8RV32ZVFHMIN-NEXT: vmsne.vi v0, v8, 0 |
| 635 | +; LMULMAX8RV32ZVFHMIN-NEXT: ret |
| 636 | +; |
| 637 | +; LMULMAX8RV64ZVFHMIN-LABEL: fp2si_v2f16_v2i1: |
| 638 | +; LMULMAX8RV64ZVFHMIN: # %bb.0: |
| 639 | +; LMULMAX8RV64ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma |
| 640 | +; LMULMAX8RV64ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8 |
| 641 | +; LMULMAX8RV64ZVFHMIN-NEXT: vfncvt.rtz.x.f.w v8, v9 |
| 642 | +; LMULMAX8RV64ZVFHMIN-NEXT: vand.vi v8, v8, 1 |
| 643 | +; LMULMAX8RV64ZVFHMIN-NEXT: vmsne.vi v0, v8, 0 |
| 644 | +; LMULMAX8RV64ZVFHMIN-NEXT: ret |
| 645 | +; |
| 646 | +; LMULMAX1RV32ZVFHMIN-LABEL: fp2si_v2f16_v2i1: |
| 647 | +; LMULMAX1RV32ZVFHMIN: # %bb.0: |
| 648 | +; LMULMAX1RV32ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma |
| 649 | +; LMULMAX1RV32ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8 |
| 650 | +; LMULMAX1RV32ZVFHMIN-NEXT: vfncvt.rtz.x.f.w v8, v9 |
| 651 | +; LMULMAX1RV32ZVFHMIN-NEXT: vand.vi v8, v8, 1 |
| 652 | +; LMULMAX1RV32ZVFHMIN-NEXT: vmsne.vi v0, v8, 0 |
| 653 | +; LMULMAX1RV32ZVFHMIN-NEXT: ret |
| 654 | +; |
| 655 | +; LMULMAX1RV64ZVFHMIN-LABEL: fp2si_v2f16_v2i1: |
| 656 | +; LMULMAX1RV64ZVFHMIN: # %bb.0: |
| 657 | +; LMULMAX1RV64ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma |
| 658 | +; LMULMAX1RV64ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8 |
| 659 | +; LMULMAX1RV64ZVFHMIN-NEXT: vfncvt.rtz.x.f.w v8, v9 |
| 660 | +; LMULMAX1RV64ZVFHMIN-NEXT: vand.vi v8, v8, 1 |
| 661 | +; LMULMAX1RV64ZVFHMIN-NEXT: vmsne.vi v0, v8, 0 |
| 662 | +; LMULMAX1RV64ZVFHMIN-NEXT: ret |
599 | 663 | %z = fptosi <2 x half> %x to <2 x i1>
|
600 | 664 | ret <2 x i1> %z
|
601 | 665 | }
|
602 | 666 |
|
603 | 667 | define <2 x i1> @fp2ui_v2f16_v2i1(<2 x half> %x) {
|
604 |
| -; CHECK-LABEL: fp2ui_v2f16_v2i1: |
605 |
| -; CHECK: # %bb.0: |
606 |
| -; CHECK-NEXT: vsetivli zero, 2, e8, mf8, ta, ma |
607 |
| -; CHECK-NEXT: vfncvt.rtz.xu.f.w v9, v8 |
608 |
| -; CHECK-NEXT: vand.vi v8, v9, 1 |
609 |
| -; CHECK-NEXT: vmsne.vi v0, v8, 0 |
610 |
| -; CHECK-NEXT: ret |
| 668 | +; LMULMAX8RV32ZVFH-LABEL: fp2ui_v2f16_v2i1: |
| 669 | +; LMULMAX8RV32ZVFH: # %bb.0: |
| 670 | +; LMULMAX8RV32ZVFH-NEXT: vsetivli zero, 2, e8, mf8, ta, ma |
| 671 | +; LMULMAX8RV32ZVFH-NEXT: vfncvt.rtz.xu.f.w v9, v8 |
| 672 | +; LMULMAX8RV32ZVFH-NEXT: vand.vi v8, v9, 1 |
| 673 | +; LMULMAX8RV32ZVFH-NEXT: vmsne.vi v0, v8, 0 |
| 674 | +; LMULMAX8RV32ZVFH-NEXT: ret |
| 675 | +; |
| 676 | +; LMULMAX8RV64ZVFH-LABEL: fp2ui_v2f16_v2i1: |
| 677 | +; LMULMAX8RV64ZVFH: # %bb.0: |
| 678 | +; LMULMAX8RV64ZVFH-NEXT: vsetivli zero, 2, e8, mf8, ta, ma |
| 679 | +; LMULMAX8RV64ZVFH-NEXT: vfncvt.rtz.xu.f.w v9, v8 |
| 680 | +; LMULMAX8RV64ZVFH-NEXT: vand.vi v8, v9, 1 |
| 681 | +; LMULMAX8RV64ZVFH-NEXT: vmsne.vi v0, v8, 0 |
| 682 | +; LMULMAX8RV64ZVFH-NEXT: ret |
| 683 | +; |
| 684 | +; LMULMAX1RV32ZVFH-LABEL: fp2ui_v2f16_v2i1: |
| 685 | +; LMULMAX1RV32ZVFH: # %bb.0: |
| 686 | +; LMULMAX1RV32ZVFH-NEXT: vsetivli zero, 2, e8, mf8, ta, ma |
| 687 | +; LMULMAX1RV32ZVFH-NEXT: vfncvt.rtz.xu.f.w v9, v8 |
| 688 | +; LMULMAX1RV32ZVFH-NEXT: vand.vi v8, v9, 1 |
| 689 | +; LMULMAX1RV32ZVFH-NEXT: vmsne.vi v0, v8, 0 |
| 690 | +; LMULMAX1RV32ZVFH-NEXT: ret |
| 691 | +; |
| 692 | +; LMULMAX1RV64ZVFH-LABEL: fp2ui_v2f16_v2i1: |
| 693 | +; LMULMAX1RV64ZVFH: # %bb.0: |
| 694 | +; LMULMAX1RV64ZVFH-NEXT: vsetivli zero, 2, e8, mf8, ta, ma |
| 695 | +; LMULMAX1RV64ZVFH-NEXT: vfncvt.rtz.xu.f.w v9, v8 |
| 696 | +; LMULMAX1RV64ZVFH-NEXT: vand.vi v8, v9, 1 |
| 697 | +; LMULMAX1RV64ZVFH-NEXT: vmsne.vi v0, v8, 0 |
| 698 | +; LMULMAX1RV64ZVFH-NEXT: ret |
| 699 | +; |
| 700 | +; LMULMAX8RV32ZVFHMIN-LABEL: fp2ui_v2f16_v2i1: |
| 701 | +; LMULMAX8RV32ZVFHMIN: # %bb.0: |
| 702 | +; LMULMAX8RV32ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma |
| 703 | +; LMULMAX8RV32ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8 |
| 704 | +; LMULMAX8RV32ZVFHMIN-NEXT: vfncvt.rtz.xu.f.w v8, v9 |
| 705 | +; LMULMAX8RV32ZVFHMIN-NEXT: vand.vi v8, v8, 1 |
| 706 | +; LMULMAX8RV32ZVFHMIN-NEXT: vmsne.vi v0, v8, 0 |
| 707 | +; LMULMAX8RV32ZVFHMIN-NEXT: ret |
| 708 | +; |
| 709 | +; LMULMAX8RV64ZVFHMIN-LABEL: fp2ui_v2f16_v2i1: |
| 710 | +; LMULMAX8RV64ZVFHMIN: # %bb.0: |
| 711 | +; LMULMAX8RV64ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma |
| 712 | +; LMULMAX8RV64ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8 |
| 713 | +; LMULMAX8RV64ZVFHMIN-NEXT: vfncvt.rtz.xu.f.w v8, v9 |
| 714 | +; LMULMAX8RV64ZVFHMIN-NEXT: vand.vi v8, v8, 1 |
| 715 | +; LMULMAX8RV64ZVFHMIN-NEXT: vmsne.vi v0, v8, 0 |
| 716 | +; LMULMAX8RV64ZVFHMIN-NEXT: ret |
| 717 | +; |
| 718 | +; LMULMAX1RV32ZVFHMIN-LABEL: fp2ui_v2f16_v2i1: |
| 719 | +; LMULMAX1RV32ZVFHMIN: # %bb.0: |
| 720 | +; LMULMAX1RV32ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma |
| 721 | +; LMULMAX1RV32ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8 |
| 722 | +; LMULMAX1RV32ZVFHMIN-NEXT: vfncvt.rtz.xu.f.w v8, v9 |
| 723 | +; LMULMAX1RV32ZVFHMIN-NEXT: vand.vi v8, v8, 1 |
| 724 | +; LMULMAX1RV32ZVFHMIN-NEXT: vmsne.vi v0, v8, 0 |
| 725 | +; LMULMAX1RV32ZVFHMIN-NEXT: ret |
| 726 | +; |
| 727 | +; LMULMAX1RV64ZVFHMIN-LABEL: fp2ui_v2f16_v2i1: |
| 728 | +; LMULMAX1RV64ZVFHMIN: # %bb.0: |
| 729 | +; LMULMAX1RV64ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma |
| 730 | +; LMULMAX1RV64ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8 |
| 731 | +; LMULMAX1RV64ZVFHMIN-NEXT: vfncvt.rtz.xu.f.w v8, v9 |
| 732 | +; LMULMAX1RV64ZVFHMIN-NEXT: vand.vi v8, v8, 1 |
| 733 | +; LMULMAX1RV64ZVFHMIN-NEXT: vmsne.vi v0, v8, 0 |
| 734 | +; LMULMAX1RV64ZVFHMIN-NEXT: ret |
611 | 735 | %z = fptoui <2 x half> %x to <2 x i1>
|
612 | 736 | ret <2 x i1> %z
|
613 | 737 | }
|
|
0 commit comments