[llvm] [x86] Synchronize fp128 and i128 ABI tests (nfc) (PR #147923)
Trevor Gross via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 10 19:40:19 PDT 2025
================
@@ -0,0 +1,903 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+
+; Combined ABI tests for fp128 and i128
+
+; RUN: sed 's/PrimTy/fp128/g' %s | sed 's/Prim0/0xL0/g' | llc -mtriple=x86_64-unknown-linux-gnu -verify-machineinstrs | FileCheck %s --check-prefix=CHECK-X64-F128
+; RUN: sed 's/PrimTy/i128/g' %s | sed 's/Prim0/0/g' | llc -mtriple=x86_64-unknown-linux-gnu -verify-machineinstrs | FileCheck %s --check-prefix=CHECK-X64-I128
+; RUN: sed 's/PrimTy/fp128/g' %s | sed 's/Prim0/0xL0/g' | llc -mtriple=x86_64-pc-windows-msvc -verify-machineinstrs | FileCheck %s --check-prefix=CHECK-MSVC64-F128
+; RUN: sed 's/PrimTy/i128/g' %s | sed 's/Prim0/0/g' | llc -mtriple=x86_64-pc-windows-msvc -verify-machineinstrs | FileCheck %s --check-prefix=CHECK-MSVC64-I128
+; RUN: sed 's/PrimTy/fp128/g' %s | sed 's/Prim0/0xL0/g' | llc -mtriple=x86_64-pc-windows-gnu -verify-machineinstrs | FileCheck %s --check-prefix=CHECK-MINGW-F128
+; RUN: sed 's/PrimTy/i128/g' %s | sed 's/Prim0/0/g' | llc -mtriple=x86_64-pc-windows-gnu -verify-machineinstrs | FileCheck %s --check-prefix=CHECK-MINGW-I128
+;
+; Use the same directive for i128 and fp128 on x86-32 since both are passed and returned on the stack.
+; RUN: sed 's/PrimTy/fp128/g' %s | sed 's/Prim0/0xL0/g' | llc -mtriple=i686-unknown-linux-gnu -verify-machineinstrs | FileCheck %s --check-prefix=CHECK-X86
+; RUN: sed 's/PrimTy/i128/g' %s | sed 's/Prim0/0/g' | llc -mtriple=i686-unknown-linux-gnu -verify-machineinstrs | FileCheck %s --check-prefix=CHECK-X86
+; RUN: sed 's/PrimTy/fp128/g' %s | sed 's/Prim0/0xL0/g' | llc -mtriple=i686-pc-windows-msvc -verify-machineinstrs | FileCheck %s --check-prefix=CHECK-MSVC32
+; RUN: sed 's/PrimTy/i128/g' %s | sed 's/Prim0/0/g' | llc -mtriple=i686-pc-windows-msvc -verify-machineinstrs | FileCheck %s --check-prefix=CHECK-MSVC32
+
+define PrimTy @return(ptr %p) {
+; CHECK-X64-F128-LABEL: return:
+; CHECK-X64-F128: # %bb.0:
+; CHECK-X64-F128-NEXT: movaps (%rdi), %xmm0
+; CHECK-X64-F128-NEXT: retq
+;
+; CHECK-X64-I128-LABEL: return:
+; CHECK-X64-I128: # %bb.0:
+; CHECK-X64-I128-NEXT: movq (%rdi), %rax
+; CHECK-X64-I128-NEXT: movq 8(%rdi), %rdx
+; CHECK-X64-I128-NEXT: retq
+;
+; CHECK-MSVC64-F128-LABEL: return:
+; CHECK-MSVC64-F128: # %bb.0:
+; CHECK-MSVC64-F128-NEXT: movaps (%rcx), %xmm0
+; CHECK-MSVC64-F128-NEXT: retq
+;
+; CHECK-MSVC64-I128-LABEL: return:
+; CHECK-MSVC64-I128: # %bb.0:
+; CHECK-MSVC64-I128-NEXT: movq (%rcx), %rax
+; CHECK-MSVC64-I128-NEXT: movq 8(%rcx), %rdx
+; CHECK-MSVC64-I128-NEXT: retq
+;
+; CHECK-MINGW-F128-LABEL: return:
+; CHECK-MINGW-F128: # %bb.0:
+; CHECK-MINGW-F128-NEXT: movaps (%rcx), %xmm0
+; CHECK-MINGW-F128-NEXT: retq
+;
+; CHECK-MINGW-I128-LABEL: return:
+; CHECK-MINGW-I128: # %bb.0:
+; CHECK-MINGW-I128-NEXT: movq (%rcx), %rax
+; CHECK-MINGW-I128-NEXT: movq 8(%rcx), %rdx
+; CHECK-MINGW-I128-NEXT: retq
+;
+; CHECK-X86-LABEL: return:
+; CHECK-X86: # %bb.0:
+; CHECK-X86-NEXT: pushl %edi
+; CHECK-X86-NEXT: .cfi_def_cfa_offset 8
----------------
tgross35 wrote:
Thanks, added the `nounwind`s.
I'll need you to land this for me (note the git quirk at https://github.com/llvm/llvm-project/pull/147923#issuecomment-3059835114)
https://github.com/llvm/llvm-project/pull/147923
More information about the llvm-commits
mailing list