diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2009-06-13 21:37:10 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2009-06-13 21:37:10 +0000 |
commit | 3192cc852616e6923f1433118b281635ef306e4f (patch) | |
tree | 5f68e4d4c97b3d15186d48c14aafbedb39f12264 /clang/test | |
parent | b3c4fb5cac763270cb36563990e3541dc49030d8 (diff) | |
download | bcm5719-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.c | 5 |
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 |