https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123852
--- Comment #18 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This fixes the issue for me:
```
[apinski@xeond2 gcc]$ git diff
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index 75ec87b8851..38b1e5fef1b 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -4527,7 +4527,7 @@ (define_insn_and_split "*negabs<mode>2"
;; instruction on SH4 202.
(define_insn_and_split "negsi_cond"
[(set (match_operand:SI 0 "arith_reg_dest" "=r,r")
- (if_then_else
+ (if_then_else:SI
(eq:SI (reg:SI T_REG) (match_operand:SI 3 "const_int_operand" "M,N"))
(match_operand:SI 1 "arith_reg_operand" "0,0")
(neg:SI (match_operand:SI 2 "arith_reg_operand" "r,r"))))]
@@ -4565,7 +4565,7 @@ (define_insn_and_split "negsi_cond"
(define_insn_and_split "negdi_cond"
[(set (match_operand:DI 0 "arith_reg_dest")
- (if_then_else
+ (if_then_else:DI
(eq:SI (reg:SI T_REG) (match_operand:SI 3 "const_int_operand"))
(match_operand:DI 1 "arith_reg_operand")
(neg:DI (match_operand:DI 2 "arith_reg_operand"))))
```
Signed-off-by: Andrew Pinski <[email protected]>
I don't have a way to fully test this so I will leave this to someone else.