summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2009-06-13 21:37:10 +0000
committerEli Friedman <eli.friedman@gmail.com>2009-06-13 21:37:10 +0000
commit3192cc852616e6923f1433118b281635ef306e4f (patch)
tree5f68e4d4c97b3d15186d48c14aafbedb39f12264 /clang/test
parentb3c4fb5cac763270cb36563990e3541dc49030d8 (diff)
downloadbcm5719-llvm-3192cc852616e6923f1433118b281635ef306e4f.tar.gz
bcm5719-llvm-3192cc852616e6923f1433118b281635ef306e4f.zip
Fix the calling convention for structs/unions containing SSE vectors on
x86-32. This is slightly messy, but I think it's consistent with gcc. llvm-svn: 73306
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/CodeGen/x86_32-arguments.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/test/CodeGen/x86_32-arguments.c b/clang/test/CodeGen/x86_32-arguments.c
index 8980c66b207..43a3ab246c7 100644
--- a/clang/test/CodeGen/x86_32-arguments.c
+++ b/clang/test/CodeGen/x86_32-arguments.c
@@ -154,4 +154,9 @@ struct s37 { float c[1][1]; } f37(void) {}
// RUN: grep 'define void @f38(.struct.s38. noalias sret .agg.result)' %t &&
struct s38 { char a[3]; short b; } f38(void) {}
+// RUN: grep 'define void @f39(.struct.s39. byval align 16 .x)' %t &&
+typedef int v39 __attribute((vector_size(16)));
+struct s39 { v39 x; };
+void f39(struct s39 x) {}
+
// RUN: true
OpenPOWER on IntegriCloud