-
- Downloads
LoongArch: Use normal RTL pattern instead of UNSPEC for {x,}vsr{a,l}ri instructions
Allowing (t + (1ul << imm >> 1)) >> imm to be recognized as a rounding shift operation. gcc/ChangeLog: * config/loongarch/lasx.md (UNSPEC_LASX_XVSRARI): Remove. (UNSPEC_LASX_XVSRLRI): Remove. (lasx_xvsrari_<lsxfmt>): Remove. (lasx_xvsrlri_<lsxfmt>): Remove. * config/loongarch/lsx.md (UNSPEC_LSX_VSRARI): Remove. (UNSPEC_LSX_VSRLRI): Remove. (lsx_vsrari_<lsxfmt>): Remove. (lsx_vsrlri_<lsxfmt>): Remove. * config/loongarch/simd.md (simd_<optab>_imm_round_<mode>): New define_insn. (<simd_isa>_<x>v<insn>ri_<simdfmt>): New define_expand. gcc/testsuite/ChangeLog: * gcc.target/loongarch/vect-shift-imm-round.c: New test.
Showing
- gcc/config/loongarch/lasx.md 0 additions, 22 deletionsgcc/config/loongarch/lasx.md
- gcc/config/loongarch/lsx.md 0 additions, 22 deletionsgcc/config/loongarch/lsx.md
- gcc/config/loongarch/simd.md 29 additions, 0 deletionsgcc/config/loongarch/simd.md
- gcc/testsuite/gcc.target/loongarch/vect-shift-imm-round.c 11 additions, 0 deletionsgcc/testsuite/gcc.target/loongarch/vect-shift-imm-round.c
Loading
Please register or sign in to comment