summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/arm64-aapcs-arguments.c
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2014-04-18 13:46:08 +0000
committerTim Northover <tnorthover@apple.com>2014-04-18 13:46:08 +0000
commit4dab69815c9357b7c2b3fe91718e569cc5c0ac6a (patch)
tree84de4a2afe93ba79f114957f0257d513cbf34867 /clang/test/CodeGen/arm64-aapcs-arguments.c
parent561c4db707a600d6902c2c345ec37c4349a11c87 (diff)
downloadbcm5719-llvm-4dab69815c9357b7c2b3fe91718e569cc5c0ac6a.tar.gz
bcm5719-llvm-4dab69815c9357b7c2b3fe91718e569cc5c0ac6a.zip
ARM64: make sure the caller is expected to extend in AAPCS.
This is one of those DarwinPCS differences. It'd been caught in arguments, but not return values. llvm-svn: 206594
Diffstat (limited to 'clang/test/CodeGen/arm64-aapcs-arguments.c')
-rw-r--r--clang/test/CodeGen/arm64-aapcs-arguments.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/test/CodeGen/arm64-aapcs-arguments.c b/clang/test/CodeGen/arm64-aapcs-arguments.c
index 72527b5acfb..b430630b071 100644
--- a/clang/test/CodeGen/arm64-aapcs-arguments.c
+++ b/clang/test/CodeGen/arm64-aapcs-arguments.c
@@ -33,3 +33,10 @@ typedef __attribute__((neon_vector_type(16))) signed char int8x16_t;
typedef struct { int8x16_t arr[3]; } BigHFA;
void test4(BigHFA v0_v2, BigHFA v3_v5, BigHFA sp, double sp48, BigHFA sp64) {
}
+
+// It's the job of the argument *consumer* to perform the required sign & zero
+// extensions under AAPCS. There shouldn't be
+
+// CHECK: define i8 @test5(i8 %a, i16 %b)
+unsigned char test5(unsigned char a, signed short b) {
+}
OpenPOWER on IntegriCloud