[llvm] [LoongArch] Pre-commit for broadcast load (PR #136070)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 17 18:51:47 PDT 2025
tangaac wrote:
> Would it make sense to add some test cases like `vldrepl_d_dbl_unaligned_offset` to ensure unaligned immediate offsets are correctly encoded?
>
> ```llvm
> define <2 x double> @vldrepl_d_dbl_unaligned_offset(ptr %ptr) {
> %p = getelementptr i32, ptr %ptr, i32 1
> %tmp = load double, ptr %p
> %tmp1 = insertelement <2 x double> zeroinitializer, double %tmp, i32 0
> %tmp2 = shufflevector <2 x double> %tmp1, <2 x double> poison, <2 x i32> zeroinitializer
> ret <2 x double> %tmp2
> }
> ```
After optimized by another pr, asm shows that it's correct
before
~~~asm
fld.d $fa0, $a0, 4
vreplvei.d $vr0, $vr0, 0
ret
~~~
after
~~~asm
addi.d $a0, $a0, 4
vldrepl.d $vr0, $a0, 0
ret
~~~
https://github.com/llvm/llvm-project/pull/136070
More information about the llvm-commits
mailing list