diff --git a/llvm/lib/Target/X86/X86CallingConv.td b/llvm/lib/Target/X86/X86CallingConv.td index 0d087e057a2bd..52665050244e9 100644 --- a/llvm/lib/Target/X86/X86CallingConv.td +++ b/llvm/lib/Target/X86/X86CallingConv.td @@ -829,6 +829,9 @@ def CC_X86_32_Common : CallingConv<[ // Long doubles get slots whose size and alignment depends on the subtarget. CCIfType<[f80], CCAssignToStack<0, 0>>, + // f128 get 16-byte slots that are 16-byte aligned. + CCIfType<[f128], CCAssignToStack<16, 16>>, + // Boolean vectors of AVX-512 are passed in SIMD registers. // The call from AVX to AVX-512 function should work, // since the boolean types in AVX/AVX2 are promoted by default.