From: Jonathan Wright Date: Fri, 14 May 2021 13:49:47 +0000 (+0100) Subject: aarch64: Relax aarch64_sqxtun2 RTL pattern X-Git-Tag: upstream/12.2.0~7781 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=778ac63fe244b63380bd3b2dee4d20ff27332bce;p=platform%2Fupstream%2Fgcc.git aarch64: Relax aarch64_sqxtun2 RTL pattern Use UNSPEC_SQXTUN instead of UNSPEC_SQXTUN2 in aarch64_sqxtun2 patterns. This allows for more more aggressive combinations and ultimately better code generation. The now redundant UNSPEC_SQXTUN2 is removed. gcc/ChangeLog: 2021-05-14 Jonathn Wright * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead of UNSPEC_SQXTUN2. * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2. --- diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md index 5473d61..7952309 100644 --- a/gcc/config/aarch64/aarch64-simd.md +++ b/gcc/config/aarch64/aarch64-simd.md @@ -4859,7 +4859,7 @@ (vec_concat: (match_operand: 1 "register_operand" "0") (unspec: - [(match_operand:VQN 2 "register_operand" "w")] UNSPEC_SQXTUN2)))] + [(match_operand:VQN 2 "register_operand" "w")] UNSPEC_SQXTUN)))] "TARGET_SIMD && !BYTES_BIG_ENDIAN" "sqxtun2\\t%0., %2." [(set_attr "type" "neon_sat_shift_imm_narrow_q")] @@ -4869,7 +4869,7 @@ [(set (match_operand: 0 "register_operand" "=w") (vec_concat: (unspec: - [(match_operand:VQN 2 "register_operand" "w")] UNSPEC_SQXTUN2) + [(match_operand:VQN 2 "register_operand" "w")] UNSPEC_SQXTUN) (match_operand: 1 "register_operand" "0")))] "TARGET_SIMD && BYTES_BIG_ENDIAN" "sqxtun2\\t%0., %2." @@ -4880,7 +4880,7 @@ [(match_operand: 0 "register_operand") (match_operand: 1 "register_operand") (unspec: - [(match_operand:VQN 2 "register_operand")] UNSPEC_SQXTUN2)] + [(match_operand:VQN 2 "register_operand")] UNSPEC_SQXTUN)] "TARGET_SIMD" { if (BYTES_BIG_ENDIAN) diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md index 29ce669..0ec93b0 100644 --- a/gcc/config/aarch64/iterators.md +++ b/gcc/config/aarch64/iterators.md @@ -521,7 +521,6 @@ UNSPEC_USQADD ; Used in aarch64-simd.md. UNSPEC_SUQADD ; Used in aarch64-simd.md. UNSPEC_SQXTUN ; Used in aarch64-simd.md. - UNSPEC_SQXTUN2 ; Used in aarch64-simd.md. UNSPEC_SSRA ; Used in aarch64-simd.md. UNSPEC_USRA ; Used in aarch64-simd.md. UNSPEC_SRSRA ; Used in aarch64-simd.md.