brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · 3de0e93 Raw
126 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -mattr=+xsfvfexpa64e \3; RUN:   -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK4; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+xsfvfexpa64e \5; RUN:   -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK6 7define <vscale x 1 x double> @test_intrinsic_sf_vfexpa_v_nxv1f64(<vscale x 1 x double> %0, iXLen %1) {8; CHECK-LABEL: test_intrinsic_sf_vfexpa_v_nxv1f64:9; CHECK:       # %bb.0: # %entry10; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma11; CHECK-NEXT:    sf.vfexpa.v v8, v812; CHECK-NEXT:    ret13entry:14    %f = call <vscale x 1 x double> @llvm.riscv.sf.vfexpa.nxv1f64(15      <vscale x 1 x double> poison,16      <vscale x 1 x double> %0,17      iXLen %1)18    ret <vscale x 1 x double> %f19}20 21define <vscale x 2 x double> @test_intrinsic_sf_vfexpa_v_nxv2f64(<vscale x 2 x double> %0, iXLen %1) {22; CHECK-LABEL: test_intrinsic_sf_vfexpa_v_nxv2f64:23; CHECK:       # %bb.0: # %entry24; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma25; CHECK-NEXT:    sf.vfexpa.v v8, v826; CHECK-NEXT:    ret27entry:28    %f = call <vscale x 2 x double> @llvm.riscv.sf.vfexpa.nxv2f64(29      <vscale x 2 x double> poison,30      <vscale x 2 x double> %0,31      iXLen %1)32    ret <vscale x 2 x double> %f33}34 35define <vscale x 4 x double> @test_intrinsic_sf_vfexpa_v_nxv4f64(<vscale x 4 x double> %0, iXLen %1) {36; CHECK-LABEL: test_intrinsic_sf_vfexpa_v_nxv4f64:37; CHECK:       # %bb.0: # %entry38; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma39; CHECK-NEXT:    sf.vfexpa.v v8, v840; CHECK-NEXT:    ret41entry:42    %f = call <vscale x 4 x double> @llvm.riscv.sf.vfexpa.nxv4f64(43      <vscale x 4 x double> poison,44      <vscale x 4 x double> %0,45      iXLen %1)46    ret <vscale x 4 x double> %f47}48 49define <vscale x 8 x double> @test_intrinsic_sf_vfexpa_v_nxv8f64(<vscale x 8 x double> %0, iXLen %1) {50; CHECK-LABEL: test_intrinsic_sf_vfexpa_v_nxv8f64:51; CHECK:       # %bb.0: # %entry52; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma53; CHECK-NEXT:    sf.vfexpa.v v8, v854; CHECK-NEXT:    ret55entry:56    %f = call <vscale x 8 x double> @llvm.riscv.sf.vfexpa.nxv8f64(57      <vscale x 8 x double> poison,58      <vscale x 8 x double> %0,59      iXLen %1)60    ret <vscale x 8 x double> %f61}62 63define <vscale x 1 x double> @test_intrinsic_sf_vfexpa_v_mask_nxv1f64(<vscale x 1 x double> %0, <vscale x 1 x double> %1, <vscale x 1 x i1> %m, iXLen %vl) {64; CHECK-LABEL: test_intrinsic_sf_vfexpa_v_mask_nxv1f64:65; CHECK:       # %bb.0: # %entry66; CHECK-NEXT:    vsetvli zero, a0, e64, m1, tu, mu67; CHECK-NEXT:    sf.vfexpa.v v8, v9, v0.t68; CHECK-NEXT:    ret69entry:70    %f = call <vscale x 1 x double> @llvm.riscv.sf.vfexpa.mask.nxv1f64(71      <vscale x 1 x double> %0,72      <vscale x 1 x double> %1,73      <vscale x 1 x i1> %m,74      iXLen %vl,75      iXLen 0)76    ret <vscale x 1 x double> %f77}78 79define <vscale x 2 x double> @test_intrinsic_sf_vfexpa_v_mask_nxv2f64(<vscale x 2 x double> %0, <vscale x 2 x double> %1, <vscale x 2 x i1> %m, iXLen %vl) {80; CHECK-LABEL: test_intrinsic_sf_vfexpa_v_mask_nxv2f64:81; CHECK:       # %bb.0: # %entry82; CHECK-NEXT:    vsetvli zero, a0, e64, m2, tu, mu83; CHECK-NEXT:    sf.vfexpa.v v8, v10, v0.t84; CHECK-NEXT:    ret85entry:86    %f = call <vscale x 2 x double> @llvm.riscv.sf.vfexpa.mask.nxv2f64(87      <vscale x 2 x double> %0,88      <vscale x 2 x double> %1,89      <vscale x 2 x i1> %m,90      iXLen %vl,91      iXLen 0)92    ret <vscale x 2 x double> %f93}94 95define <vscale x 4 x double> @test_intrinsic_sf_vfexpa_v_mask_nxv4f64(<vscale x 4 x double> %0, <vscale x 4 x double> %1, <vscale x 4 x i1> %m, iXLen %vl) {96; CHECK-LABEL: test_intrinsic_sf_vfexpa_v_mask_nxv4f64:97; CHECK:       # %bb.0: # %entry98; CHECK-NEXT:    vsetvli zero, a0, e64, m4, tu, mu99; CHECK-NEXT:    sf.vfexpa.v v8, v12, v0.t100; CHECK-NEXT:    ret101entry:102    %f = call <vscale x 4 x double> @llvm.riscv.sf.vfexpa.mask.nxv4f64(103      <vscale x 4 x double> %0,104      <vscale x 4 x double> %1,105      <vscale x 4 x i1> %m,106      iXLen %vl,107      iXLen 0)108    ret <vscale x 4 x double> %f109}110 111define <vscale x 8 x double> @test_intrinsic_sf_vfexpa_v_mask_nxv8f64(<vscale x 8 x double> %0, <vscale x 8 x double> %1, <vscale x 8 x i1> %m, iXLen %vl) {112; CHECK-LABEL: test_intrinsic_sf_vfexpa_v_mask_nxv8f64:113; CHECK:       # %bb.0: # %entry114; CHECK-NEXT:    vsetvli zero, a0, e64, m8, tu, mu115; CHECK-NEXT:    sf.vfexpa.v v8, v16, v0.t116; CHECK-NEXT:    ret117entry:118    %f = call <vscale x 8 x double> @llvm.riscv.sf.vfexpa.mask.nxv8f64(119      <vscale x 8 x double> %0,120      <vscale x 8 x double> %1,121      <vscale x 8 x i1> %m,122      iXLen %vl,123      iXLen 0)124    ret <vscale x 8 x double> %f125}126