From 4de284cee3c6d8b9a2b2d93dc09d4ec0bcb2d8e5 Mon Sep 17 00:00:00 2001 From: Brice Dobry Date: Thu, 12 Aug 2021 14:25:53 -0400 Subject: [PATCH] Support cast from float to a32/a64 ME may coalesce casts from float to integer, then integer to pointer, so CG should handle this valid case. --- src/mapleall/maple_be/src/cg/aarch64/aarch64_cgfunc.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mapleall/maple_be/src/cg/aarch64/aarch64_cgfunc.cpp b/src/mapleall/maple_be/src/cg/aarch64/aarch64_cgfunc.cpp index d16d233466..a81e330f96 100755 --- a/src/mapleall/maple_be/src/cg/aarch64/aarch64_cgfunc.cpp +++ b/src/mapleall/maple_be/src/cg/aarch64/aarch64_cgfunc.cpp @@ -4527,12 +4527,14 @@ void AArch64CGFunc::SelectCvtFloat2Int(Operand &resOpnd, Operand &srcOpnd, PrimT mOp = !is64BitsFloat ? MOP_vcvtrf : MOP_vcvtrd; break; case PTY_u32: + case PTY_a32: mOp = !is64BitsFloat ? MOP_vcvturf : MOP_vcvturd; break; case PTY_i64: mOp = !is64BitsFloat ? MOP_xvcvtrf : MOP_xvcvtrd; break; case PTY_u64: + case PTY_a64: mOp = !is64BitsFloat ? MOP_xvcvturf : MOP_xvcvturd; break; default: -- Gitee