[llvm] [DAG] visitFREEZE - always allow freezing multiple operands (PR #145939)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 1 08:27:59 PDT 2025
================
@@ -278,16 +278,22 @@ define void @freeze_buildvector_single_maybe_poison_operand(ptr %origin, ptr %ds
; X86: # %bb.0:
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
-; X86-NEXT: vbroadcastss {{.*#+}} xmm0 = [42,42,42,42]
-; X86-NEXT: vpinsrd $0, (%ecx), %xmm0, %xmm0
+; X86-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
+; X86-NEXT: movl $42, %ecx
+; X86-NEXT: vpinsrd $1, %ecx, %xmm0, %xmm0
+; X86-NEXT: vpinsrd $2, %ecx, %xmm0, %xmm0
+; X86-NEXT: vpinsrd $3, %ecx, %xmm0, %xmm0
----------------
nikic wrote:
What's the cause for this regression? Does this leave behind a freeze poison for the base vector, even though it's non-demanded?
https://github.com/llvm/llvm-project/pull/145939
More information about the llvm-commits
mailing list