================
@@ -0,0 +1,28 @@
+// RUN: %clang_cc1 -triple x86_64-linux-gnu %s -emit-llvm -o - | FileCheck %s 
--check-prefixes=CHECK-BOTH
+// RUN: %clang_cc1 -triple x86_64-linux-gnu -msmall-int-abi-compat=both %s 
-emit-llvm -o - | FileCheck %s --check-prefixes=CHECK-BOTH
+// RUN: %clang_cc1 -triple x86_64-linux-gnu -msmall-int-abi-compat=clang %s 
-emit-llvm -o - | FileCheck %s --check-prefixes=CHECK-CLANG
+// RUN: %clang_cc1 -triple x86_64-linux-gnu -msmall-int-abi-compat=platform %s 
-emit-llvm -o - | FileCheck %s --check-prefixes=CHECK-PLATFORM
+// RUN: %clang_cc1 -triple x86_64-linux-gnu -fexperimental-abi-lowering %s 
-emit-llvm -o - | FileCheck %s --check-prefixes=CHECK-BOTH
+// RUN: %clang_cc1 -triple x86_64-linux-gnu -msmall-int-abi-compat=both 
-fexperimental-abi-lowering %s -emit-llvm -o - | FileCheck %s 
--check-prefixes=CHECK-BOTH
+// RUN: %clang_cc1 -triple x86_64-linux-gnu -msmall-int-abi-compat=clang 
-fexperimental-abi-lowering %s -emit-llvm -o - | FileCheck %s 
--check-prefixes=CHECK-CLANG
+// RUN: %clang_cc1 -triple x86_64-linux-gnu -msmall-int-abi-compat=platform 
-fexperimental-abi-lowering %s -emit-llvm -o - | FileCheck %s 
--check-prefixes=CHECK-PLATFORM
+
+// -msmall-int-abi-compat=platform only needs to extend to 8-bits in the caller
+// and can assume 8-bit extension in the callee. We currently can't express
+// this, so we perform full 32-bit extension in the caller and do not assume
----------------
aengelke wrote:

> So this is going to need support in the ABI representation (and corresponding 
> lowering) first. I don't think we want it to be part of this PR?

Yeah, this would probably need an ABIArgInfo::Extend that "coerces" into a 
wider type using zext/sext instead of setting attributes. I agree that this 
should be a separate change.

https://github.com/llvm/llvm-project/pull/236450
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to