[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