https://gcc.gnu.org/g:ee8f20d61dfaa5cf2af77e49e3ad78ccd4d98b36
commit r16-3370-gee8f20d61dfaa5cf2af77e49e3ad78ccd4d98b36 Author: Takayuki 'January June' Suwa <jjsuwa_sys3...@yahoo.co.jp> Date: Mon Aug 25 06:26:41 2025 +0900 xtensa: Simplify "zero_extend[hq]isi2" insn patterns gcc/ChangeLog: * config/xtensa/xtensa.md (mode_bits): New mode attribute. (zero_extend<mode>si2): Use the appropriate mode iterator and attribute to unify "zero_extend[hq]isi2" to this description. Diff: --- gcc/config/xtensa/xtensa.md | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md index f38fe6da8e48..4a02a6efe51a 100644 --- a/gcc/config/xtensa/xtensa.md +++ b/gcc/config/xtensa/xtensa.md @@ -88,6 +88,7 @@ ;; This mode iterator allows the HI and QI patterns to be defined from ;; the same template. (define_mode_iterator HQI [HI QI]) +(define_mode_attr mode_bits [(HI "16") (QI "8")]) ;; This mode iterator allows the SI and HI patterns to be defined from ;; the same template. @@ -944,24 +945,13 @@ ;; Zero-extend instructions. -(define_insn "zero_extendhisi2" +(define_insn "zero_extend<mode>si2" [(set (match_operand:SI 0 "register_operand" "=a,a") - (zero_extend:SI (match_operand:HI 1 "nonimmed_operand" "r,U")))] + (zero_extend:SI (match_operand:HQI 1 "nonimmed_operand" "r,U")))] "" "@ - extui\t%0, %1, 0, 16 - %v1l16ui\t%0, %1" - [(set_attr "type" "arith,load") - (set_attr "mode" "SI") - (set_attr "length" "3,3")]) - -(define_insn "zero_extendqisi2" - [(set (match_operand:SI 0 "register_operand" "=a,a") - (zero_extend:SI (match_operand:QI 1 "nonimmed_operand" "r,U")))] - "" - "@ - extui\t%0, %1, 0, 8 - %v1l8ui\t%0, %1" + extui\t%0, %1, 0, <mode_bits> + %v1l<mode_bits>ui\t%0, %1" [(set_attr "type" "arith,load") (set_attr "mode" "SI") (set_attr "length" "3,3")])