Message ID | 20240627-tcg-v2-6-1690a813348e@daynix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | tests/tcg/aarch64: Fix inline assemblies for clang | expand |
diff --git a/tests/tcg/arm/fcvt.c b/tests/tcg/arm/fcvt.c index 157790e67961..14c9bb669c91 100644 --- a/tests/tcg/arm/fcvt.c +++ b/tests/tcg/arm/fcvt.c @@ -355,7 +355,9 @@ static void convert_half_to_single(void) print_half_number(i, input); #if defined(__arm__) - asm("vcvtb.f32.f16 %0, %1" : "=w" (output) : "x" ((uint32_t)input)); + float tmp; + asm("vmov %0, %1" : "=w" (tmp) : "r" (input)); + asm("vcvtb.f32.f16 %0, %1" : "=w" (output) : "x" (tmp)); #else asm("fcvt %s0, %h1" : "=w" (output) : "w" (input)); #endif
clang version 18.1.6 does not allow specifying an integer as the value of a single-precision register. Manually bit-cast into float with vmov first. Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> --- tests/tcg/arm/fcvt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)