fcvtzs d0,s31 requires fprcvt support in compiler, which is only available from gcc-16. Since our debian-all-test-cross container has gcc-aarch64-14, this test will never run in CI.
Replace the concerned instruction with raw opcode, obtained from: $ echo "fcvtzs d0, s31" | llvm-mc-22 -triple=aarch64 -mattr=fprcvt --show-encoding fcvtzs d0, s31 // encoding: [0xe0,0x03,0x36,0x9e] Signed-off-by: Pierrick Bouvier <[email protected]> --- tests/tcg/arm/fcvt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/tcg/arm/fcvt.c b/tests/tcg/arm/fcvt.c index 7c0cc4367e7..8c81ba8a1bc 100644 --- a/tests/tcg/arm/fcvt.c +++ b/tests/tcg/arm/fcvt.c @@ -173,9 +173,11 @@ static void convert_single_to_integer(void) output = input; #else #ifdef FPRCVT - asm("fcvtzs d0, %s1\r\n" + asm("fmov s31, %s1\n\t" + /* "fcvtzs d0, s31\n\t" */ + ".byte 0xe0,0x03,0x36,0x9e\n\t" "fmov %0, d0" : - "=r" (output) : "w" (input)); + "=r" (output) : "w" (input) : "s31", "d0"); #else asm("fcvtzs %0, %s1" : "=r" (output) : "w" (input)); #endif -- 2.47.3
