[llvm] [SDAG] Ensure load is included in output chain of sincos expansion (PR #140525)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon May 19 03:46:58 PDT 2025
================
@@ -0,0 +1,63 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no_x86_scrub_sp --no_x86_scrub_mem_shuffle --version 5
+; RUN: llc < %s | FileCheck %s
+
+target triple = "x86_64-sie-ps5"
+
+declare hidden void @use_ptr(ptr readonly) local_unnamed_addr
+
+define hidden noundef i32 @sincos_stack_slot_with_lifetime(float %in) local_unnamed_addr {
+; CHECK-LABEL: sincos_stack_slot_with_lifetime:
+; CHECK: # %bb.0: # %entry
+; CHECK-NEXT: pushq %rbx
+; CHECK-NEXT: .cfi_def_cfa_offset 16
+; CHECK-NEXT: subq $32, %rsp
+; CHECK-NEXT: .cfi_def_cfa_offset 48
+; CHECK-NEXT: .cfi_offset %rbx, -16
+; CHECK-NEXT: leaq 12(%rsp), %rdi
+; CHECK-NEXT: leaq 8(%rsp), %rbx
+; CHECK-NEXT: movq %rbx, %rsi
+; CHECK-NEXT: callq sincosf at PLT
+; CHECK-NEXT: movss 8(%rsp), %xmm0 # xmm0 = mem[0],zero,zero,zero
+; CHECK-NEXT: movaps %xmm0, 16(%rsp) # 16-byte Spill
+; CHECK-NEXT: movq %rbx, %rdi
+; CHECK-NEXT: callq use_ptr
+; CHECK-NEXT: movss 12(%rsp), %xmm0 # xmm0 = mem[0],zero,zero,zero
+; CHECK-NEXT: xorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
+; CHECK-NEXT: movss %xmm0, 8(%rsp)
+; CHECK-NEXT: leaq 8(%rsp), %rdi
+; CHECK-NEXT: callq use_ptr
+; CHECK-NEXT: movaps 16(%rsp), %xmm0 # 16-byte Reload
+; CHECK-NEXT: xorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
+; CHECK-NEXT: movss %xmm0, 8(%rsp)
+; CHECK-NEXT: leaq 8(%rsp), %rdi
+; CHECK-NEXT: callq use_ptr
+; CHECK-NEXT: xorl %eax, %eax
+; CHECK-NEXT: addq $32, %rsp
+; CHECK-NEXT: .cfi_def_cfa_offset 16
+; CHECK-NEXT: popq %rbx
+; CHECK-NEXT: .cfi_def_cfa_offset 8
+; CHECK-NEXT: retq
+entry:
+ %computed = alloca float, align 4
+ %computed1 = alloca float, align 4
+ %computed3 = alloca float, align 4
+ %0 = tail call { float, float } @llvm.sincos.f32(float %in)
+ %1 = extractvalue { float, float } %0, 0
+ %2 = extractvalue { float, float } %0, 1
----------------
arsenm wrote:
Use named values in tests
https://github.com/llvm/llvm-project/pull/140525
More information about the llvm-commits
mailing list