diff options
author | Chris Lattner <sabre@nondot.org> | 2010-07-28 23:47:21 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-07-28 23:47:21 +0000 |
commit | f4ba08aeafae2d8fed8c11dc59435a739decbda4 (patch) | |
tree | f7400d98cf869a91ce93e6aae8da0469524ee7bc /clang/test | |
parent | 4b8585ef6a2ce8943e963d61dc3406d5579ce365 (diff) | |
download | bcm5719-llvm-f4ba08aeafae2d8fed8c11dc59435a739decbda4.tar.gz bcm5719-llvm-f4ba08aeafae2d8fed8c11dc59435a739decbda4.zip |
pass argument vectors in a type that corresponds to the user type if
possible. This improves the example to pass <4 x float> instead of
<2 x double> but we still get awful code, and still don't get the
return value right.
llvm-svn: 109700
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/CodeGen/x86_64-arguments.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/test/CodeGen/x86_64-arguments.c b/clang/test/CodeGen/x86_64-arguments.c index 1b7967d0de7..b4500d6de69 100644 --- a/clang/test/CodeGen/x86_64-arguments.c +++ b/clang/test/CodeGen/x86_64-arguments.c @@ -152,3 +152,11 @@ struct f23S f24(struct f23S *X, struct f24s *P2) { // CHECK: define %struct.f24s @f24(%struct.f23S* %X, %struct.f24s* %P2) } +typedef float v4f32 __attribute__((__vector_size__(16))); + +v4f32 f25(v4f32 X) { + // CHECK: define <2 x double> @f25(<4 x float> %X.coerce) + return X+X; +} + + |