119 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc %s -o - -mtriple=riscv64 -mattr=+v -run-pass=riscv-vector-peephole -verify-machineinstrs | FileCheck %s3 4---5name: vle326body: |7 bb.0:8 liveins: $x8, $v0, $v89 ; CHECK-LABEL: name: vle3210 ; CHECK: liveins: $x8, $v0, $v811 ; CHECK-NEXT: {{ $}}12 ; CHECK-NEXT: %avl:gprnox0 = COPY $x813 ; CHECK-NEXT: %passthru:vrnov0 = COPY $v814 ; CHECK-NEXT: %mask:vmv0 = COPY $v015 ; CHECK-NEXT: %y:vrnov0 = PseudoVLE32_V_M1_MASK %passthru, $noreg, %mask, %avl, 5 /* e32 */, 0 /* tu, mu */ :: (load unknown-size, align 1)16 %avl:gprnox0 = COPY $x817 %passthru:vrnov0 = COPY $v818 %x:vr = PseudoVLE32_V_M1 $noreg, $noreg, %avl, 5 /* e32 */, 2 /* tu, ma */ :: (load unknown-size)19 %mask:vmv0 = COPY $v020 %y:vrnov0 = PseudoVMERGE_VVM_M1 %passthru, %passthru, %x, %mask, %avl, 5 /* e32 */21...22---23name: vle32_no_passthru24body: |25 bb.0:26 liveins: $x8, $v0, $v827 ; CHECK-LABEL: name: vle32_no_passthru28 ; CHECK: liveins: $x8, $v0, $v829 ; CHECK-NEXT: {{ $}}30 ; CHECK-NEXT: %avl:gprnox0 = COPY $x831 ; CHECK-NEXT: %false:vrnov0 = COPY $v832 ; CHECK-NEXT: %mask:vmv0 = COPY $v033 ; CHECK-NEXT: %y:vrnov0 = PseudoVLE32_V_M1_MASK %false, $noreg, %mask, %avl, 5 /* e32 */, 1 /* ta, mu */ :: (load unknown-size, align 1)34 %avl:gprnox0 = COPY $x835 %false:vr = COPY $v836 %x:vr = PseudoVLE32_V_M1 $noreg, $noreg, %avl, 5 /* e32 */, 2 /* tu, ma */ :: (load unknown-size)37 %mask:vmv0 = COPY $v038 %y:vrnov0 = PseudoVMERGE_VVM_M1 $noreg, %false, %x, %mask, %avl, 5 /* e32 */39...40---41name: vle32_move_past_passthru42body: |43 bb.0:44 liveins: $x8, $v0, $v845 ; CHECK-LABEL: name: vle32_move_past_passthru46 ; CHECK: liveins: $x8, $v0, $v847 ; CHECK-NEXT: {{ $}}48 ; CHECK-NEXT: %avl:gprnox0 = COPY $x849 ; CHECK-NEXT: %passthru:vrnov0 = COPY $v850 ; CHECK-NEXT: %mask:vmv0 = COPY $v051 ; CHECK-NEXT: %y:vrnov0 = PseudoVLE32_V_M1_MASK %passthru, $noreg, %mask, %avl, 5 /* e32 */, 0 /* tu, mu */ :: (load unknown-size, align 1)52 %avl:gprnox0 = COPY $x853 %x:vr = PseudoVLE32_V_M1 $noreg, $noreg, %avl, 5 /* e32 */, 2 /* tu, ma */ :: (load unknown-size)54 %passthru:vrnov0 = COPY $v855 %mask:vmv0 = COPY $v056 %y:vrnov0 = PseudoVMERGE_VVM_M1 %passthru, %passthru, %x, %mask, %avl, 5 /* e32 */57...58---59name: vnclip_move_past_passthru60body: |61 bb.0:62 liveins: $x8, $v0, $v863 ; CHECK-LABEL: name: vnclip_move_past_passthru64 ; CHECK: liveins: $x8, $v0, $v865 ; CHECK-NEXT: {{ $}}66 ; CHECK-NEXT: %avl:gprnox0 = COPY $x867 ; CHECK-NEXT: %passthru:vrnov0 = COPY $v868 ; CHECK-NEXT: %mask:vmv0 = COPY $v069 ; CHECK-NEXT: %y:vrnov0 = PseudoVNCLIPU_WV_MF2_MASK %passthru, $noreg, $noreg, %mask, 0, %avl, 5 /* e32 */, 0 /* tu, mu */, implicit-def $vxsat70 %avl:gprnox0 = COPY $x871 %x:vr = PseudoVNCLIPU_WV_MF2 $noreg, $noreg, $noreg, 0, -1, 5, 3, implicit-def $vxsat72 %passthru:vrnov0 = COPY $v873 %mask:vmv0 = COPY $v074 %y:vrnov0 = PseudoVMERGE_VVM_M1 %passthru, %passthru, %x, %mask, %avl, 5 /* e32 */75...76---77name: vnclip_cant_move_past_passthru78body: |79 bb.0:80 liveins: $x8, $v0, $v881 ; CHECK-LABEL: name: vnclip_cant_move_past_passthru82 ; CHECK: liveins: $x8, $v0, $v883 ; CHECK-NEXT: {{ $}}84 ; CHECK-NEXT: %avl:gprnox0 = COPY $x885 ; CHECK-NEXT: %x:vr = PseudoVNCLIPU_WV_MF2 $noreg, $noreg, $noreg, 0, -1, 5 /* e32 */, 3 /* ta, ma */, implicit-def $vxsat86 ; CHECK-NEXT: %vxsat:gpr = COPY $vxsat87 ; CHECK-NEXT: %passthru:vrnov0 = COPY $v888 ; CHECK-NEXT: %mask:vmv0 = COPY $v089 ; CHECK-NEXT: %y:vrnov0 = PseudoVMERGE_VVM_M1 %passthru, %passthru, %x, %mask, %avl, 5 /* e32 */90 %avl:gprnox0 = COPY $x891 %x:vr = PseudoVNCLIPU_WV_MF2 $noreg, $noreg, $noreg, 0, -1, 5, 3, implicit-def $vxsat92 %vxsat:gpr = COPY $vxsat93 %passthru:vrnov0 = COPY $v894 %mask:vmv0 = COPY $v095 %y:vrnov0 = PseudoVMERGE_VVM_M1 %passthru, %passthru, %x, %mask, %avl, 5 /* e32 */96...97---98name: commute_vfmadd99body: |100 bb.0:101 liveins: $x8, $v0, $v8, $v9, $v10102 ; CHECK-LABEL: name: commute_vfmadd103 ; CHECK: liveins: $x8, $v0, $v8, $v9, $v10104 ; CHECK-NEXT: {{ $}}105 ; CHECK-NEXT: %avl:gprnox0 = COPY $x8106 ; CHECK-NEXT: %mask:vmv0 = COPY $v0107 ; CHECK-NEXT: %passthru:vrnov0 = COPY $v8108 ; CHECK-NEXT: %x:vr = COPY $v9109 ; CHECK-NEXT: %y:vr = COPY $v10110 ; CHECK-NEXT: %vmerge:vrnov0 = nofpexcept PseudoVFMACC_VV_M1_E32_MASK %passthru, %y, %x, %mask, 7, %avl, 5 /* e32 */, 0 /* tu, mu */, implicit $frm111 %avl:gprnox0 = COPY $x8112 %mask:vmv0 = COPY $v0113 %passthru:vrnov0 = COPY $v8114 %x:vr = COPY $v9115 %y:vr = COPY $v10116 %vfmadd:vrnov0 = nofpexcept PseudoVFMADD_VV_M1_E32 %x, %y, %passthru, 7, -1, 5 /* e32 */, 3 /* ta, ma */, implicit $frm117 %vmerge:vrnov0 = PseudoVMERGE_VVM_M1 %passthru, %passthru, %vfmadd, %mask, %avl, 5118...119