[PATCH] D71013: [AIX] Allow vararg calls when all arguments reside in registers.
Hubert Tong via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Dec 14 20:14:07 PST 2019
hubert.reinterpretcast added inline comments.
================
Comment at: llvm/test/CodeGen/PowerPC/aix-cc-abi.ll:697
+ %1 = load double, double* @d1, align 8
+ call void (i32, ...) @test_vararg(i32 42, double %conv, i64 42, double %1)
+ ret void
----------------
cebowleratibm wrote:
> ZarkoCA wrote:
> > Can one of these be set as a float? This way it's explicitly shown that floats and doubles are handled differently.
> We could, but there's no way to do so from C code. You can do so for typed functions, but then you don't initialize the GPR and this is outside the scope of this patch.
>
> We could write such a test in IR with understanding nothing in C/C++ will produce such IR.
This case suggested by @ZarkoCA raises the question of how a 32-bit floating point value will be represented in a 64-bit GPR. What is the expected result? The equivalent case for XL generates a 64-bit GPR with zeroes in the high bits and the bits forming the 32-bit floating point value in the low bits.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D71013/new/
https://reviews.llvm.org/D71013
More information about the llvm-commits
mailing list