[llvm] [x86] Synchronize fp128 and i128 ABI tests (nfc) (PR #147923)

Phoebe Wang via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 10 19:29:59 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
----------------
phoebewang wrote:

Add `nounwind` to remove such directives.

https://github.com/llvm/llvm-project/pull/147923


More information about the llvm-commits mailing list