|
3705 | 3705 | ;; CSE has problems to operate on hard regs.
|
3706 | 3706 | ;;
|
3707 | 3707 | (define_insn_and_split "divmodqi4"
|
3708 |
| - [(set (match_operand:QI 0 "pseudo_register_operand" "") |
3709 |
| - (div:QI (match_operand:QI 1 "pseudo_register_operand" "") |
3710 |
| - (match_operand:QI 2 "pseudo_register_operand" ""))) |
3711 |
| - (set (match_operand:QI 3 "pseudo_register_operand" "") |
| 3708 | + [(set (match_operand:QI 0 "pseudo_register_operand") |
| 3709 | + (div:QI (match_operand:QI 1 "pseudo_register_operand") |
| 3710 | + (match_operand:QI 2 "pseudo_register_operand"))) |
| 3711 | + (set (match_operand:QI 3 "pseudo_register_operand") |
3712 | 3712 | (mod:QI (match_dup 1) (match_dup 2)))
|
3713 | 3713 | (clobber (reg:QI 22))
|
3714 | 3714 | (clobber (reg:QI 23))
|
3715 | 3715 | (clobber (reg:QI 24))
|
3716 | 3716 | (clobber (reg:QI 25))]
|
3717 | 3717 | ""
|
3718 |
| - "this divmodqi4 pattern should have been splitted;" |
| 3718 | + { gcc_unreachable(); } |
3719 | 3719 | ""
|
3720 | 3720 | [(set (reg:QI 24) (match_dup 1))
|
3721 | 3721 | (set (reg:QI 22) (match_dup 2))
|
|
3751 | 3751 | [(set_attr "type" "xcall")])
|
3752 | 3752 |
|
3753 | 3753 | (define_insn_and_split "udivmodqi4"
|
3754 |
| - [(set (match_operand:QI 0 "pseudo_register_operand" "") |
3755 |
| - (udiv:QI (match_operand:QI 1 "pseudo_register_operand" "") |
3756 |
| - (match_operand:QI 2 "pseudo_register_operand" ""))) |
3757 |
| - (set (match_operand:QI 3 "pseudo_register_operand" "") |
3758 |
| - (umod:QI (match_dup 1) (match_dup 2))) |
3759 |
| - (clobber (reg:QI 22)) |
3760 |
| - (clobber (reg:QI 23)) |
3761 |
| - (clobber (reg:QI 24)) |
3762 |
| - (clobber (reg:QI 25))] |
3763 |
| - "" |
3764 |
| - "this udivmodqi4 pattern should have been splitted;" |
| 3754 | + [(set (match_operand:QI 0 "pseudo_register_operand") |
| 3755 | + (udiv:QI (match_operand:QI 1 "pseudo_register_operand") |
| 3756 | + (match_operand:QI 2 "pseudo_register_operand"))) |
| 3757 | + (set (match_operand:QI 3 "pseudo_register_operand") |
| 3758 | + (umod:QI (match_dup 1) (match_dup 2))) |
| 3759 | + (clobber (reg:QI 22)) |
| 3760 | + (clobber (reg:QI 23)) |
| 3761 | + (clobber (reg:QI 24)) |
| 3762 | + (clobber (reg:QI 25))] |
| 3763 | + "" |
| 3764 | + { gcc_unreachable(); } |
3765 | 3765 | ""
|
3766 | 3766 | [(set (reg:QI 24) (match_dup 1))
|
3767 | 3767 | (set (reg:QI 22) (match_dup 2))
|
|
3793 | 3793 | [(set_attr "type" "xcall")])
|
3794 | 3794 |
|
3795 | 3795 | (define_insn_and_split "divmodhi4"
|
3796 |
| - [(set (match_operand:HI 0 "pseudo_register_operand" "") |
3797 |
| - (div:HI (match_operand:HI 1 "pseudo_register_operand" "") |
3798 |
| - (match_operand:HI 2 "pseudo_register_operand" ""))) |
3799 |
| - (set (match_operand:HI 3 "pseudo_register_operand" "") |
| 3796 | + [(set (match_operand:HI 0 "pseudo_register_operand") |
| 3797 | + (div:HI (match_operand:HI 1 "pseudo_register_operand") |
| 3798 | + (match_operand:HI 2 "pseudo_register_operand"))) |
| 3799 | + (set (match_operand:HI 3 "pseudo_register_operand") |
3800 | 3800 | (mod:HI (match_dup 1) (match_dup 2)))
|
3801 | 3801 | (clobber (reg:QI 21))
|
3802 | 3802 | (clobber (reg:HI 22))
|
3803 | 3803 | (clobber (reg:HI 24))
|
3804 | 3804 | (clobber (reg:HI 26))]
|
3805 | 3805 | ""
|
3806 |
| - "this should have been splitted;" |
| 3806 | + { gcc_unreachable(); } |
3807 | 3807 | ""
|
3808 | 3808 | [(set (reg:HI 24) (match_dup 1))
|
3809 | 3809 | (set (reg:HI 22) (match_dup 2))
|
|
3839 | 3839 | [(set_attr "type" "xcall")])
|
3840 | 3840 |
|
3841 | 3841 | (define_insn_and_split "udivmodhi4"
|
3842 |
| - [(set (match_operand:HI 0 "pseudo_register_operand" "") |
3843 |
| - (udiv:HI (match_operand:HI 1 "pseudo_register_operand" "") |
3844 |
| - (match_operand:HI 2 "pseudo_register_operand" ""))) |
3845 |
| - (set (match_operand:HI 3 "pseudo_register_operand" "") |
| 3842 | + [(set (match_operand:HI 0 "pseudo_register_operand") |
| 3843 | + (udiv:HI (match_operand:HI 1 "pseudo_register_operand") |
| 3844 | + (match_operand:HI 2 "pseudo_register_operand"))) |
| 3845 | + (set (match_operand:HI 3 "pseudo_register_operand") |
3846 | 3846 | (umod:HI (match_dup 1) (match_dup 2)))
|
3847 | 3847 | (clobber (reg:QI 21))
|
3848 | 3848 | (clobber (reg:HI 22))
|
3849 | 3849 | (clobber (reg:HI 24))
|
3850 | 3850 | (clobber (reg:HI 26))]
|
3851 | 3851 | ""
|
3852 |
| - "this udivmodhi4 pattern should have been splitted.;" |
| 3852 | + { gcc_unreachable(); } |
3853 | 3853 | ""
|
3854 | 3854 | [(set (reg:HI 24) (match_dup 1))
|
3855 | 3855 | (set (reg:HI 22) (match_dup 2))
|
|
4090 | 4090 | ;; implementation works the other way round.
|
4091 | 4091 |
|
4092 | 4092 | (define_insn_and_split "divmodpsi4"
|
4093 |
| - [(parallel [(set (match_operand:PSI 0 "pseudo_register_operand" "") |
4094 |
| - (div:PSI (match_operand:PSI 1 "pseudo_register_operand" "") |
4095 |
| - (match_operand:PSI 2 "pseudo_register_operand" ""))) |
4096 |
| - (set (match_operand:PSI 3 "pseudo_register_operand" "") |
4097 |
| - (mod:PSI (match_dup 1) |
4098 |
| - (match_dup 2))) |
4099 |
| - (clobber (reg:DI 18)) |
4100 |
| - (clobber (reg:QI 26))])] |
| 4093 | + [(set (match_operand:PSI 0 "pseudo_register_operand") |
| 4094 | + (div:PSI (match_operand:PSI 1 "pseudo_register_operand") |
| 4095 | + (match_operand:PSI 2 "pseudo_register_operand"))) |
| 4096 | + (set (match_operand:PSI 3 "pseudo_register_operand") |
| 4097 | + (mod:PSI (match_dup 1) |
| 4098 | + (match_dup 2))) |
| 4099 | + (clobber (reg:DI 18)) |
| 4100 | + (clobber (reg:QI 26))] |
4101 | 4101 | ""
|
4102 | 4102 | { gcc_unreachable(); }
|
4103 | 4103 | ""
|
|
4139 | 4139 | [(set_attr "type" "xcall")])
|
4140 | 4140 |
|
4141 | 4141 | (define_insn_and_split "udivmodpsi4"
|
4142 |
| - [(parallel [(set (match_operand:PSI 0 "pseudo_register_operand" "") |
4143 |
| - (udiv:PSI (match_operand:PSI 1 "pseudo_register_operand" "") |
4144 |
| - (match_operand:PSI 2 "pseudo_register_operand" ""))) |
4145 |
| - (set (match_operand:PSI 3 "pseudo_register_operand" "") |
4146 |
| - (umod:PSI (match_dup 1) |
4147 |
| - (match_dup 2))) |
4148 |
| - (clobber (reg:DI 18)) |
4149 |
| - (clobber (reg:QI 26))])] |
| 4142 | + [(set (match_operand:PSI 0 "pseudo_register_operand") |
| 4143 | + (udiv:PSI (match_operand:PSI 1 "pseudo_register_operand") |
| 4144 | + (match_operand:PSI 2 "pseudo_register_operand"))) |
| 4145 | + (set (match_operand:PSI 3 "pseudo_register_operand") |
| 4146 | + (umod:PSI (match_dup 1) |
| 4147 | + (match_dup 2))) |
| 4148 | + (clobber (reg:DI 18)) |
| 4149 | + (clobber (reg:QI 26))] |
4150 | 4150 | ""
|
4151 | 4151 | { gcc_unreachable(); }
|
4152 | 4152 | ""
|
|
4190 | 4190 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
4191 | 4191 |
|
4192 | 4192 | (define_insn_and_split "divmodsi4"
|
4193 |
| - [(parallel [(set (match_operand:SI 0 "pseudo_register_operand" "") |
4194 |
| - (div:SI (match_operand:SI 1 "pseudo_register_operand" "") |
4195 |
| - (match_operand:SI 2 "pseudo_register_operand" ""))) |
4196 |
| - (set (match_operand:SI 3 "pseudo_register_operand" "") |
4197 |
| - (mod:SI (match_dup 1) (match_dup 2))) |
4198 |
| - (clobber (reg:SI 18)) |
4199 |
| - (clobber (reg:SI 22)) |
4200 |
| - (clobber (reg:HI 26)) |
4201 |
| - (clobber (reg:HI 30))])] |
| 4193 | + [(set (match_operand:SI 0 "pseudo_register_operand") |
| 4194 | + (div:SI (match_operand:SI 1 "pseudo_register_operand") |
| 4195 | + (match_operand:SI 2 "pseudo_register_operand"))) |
| 4196 | + (set (match_operand:SI 3 "pseudo_register_operand") |
| 4197 | + (mod:SI (match_dup 1) |
| 4198 | + (match_dup 2))) |
| 4199 | + (clobber (reg:SI 18)) |
| 4200 | + (clobber (reg:SI 22)) |
| 4201 | + (clobber (reg:HI 26)) |
| 4202 | + (clobber (reg:HI 30))] |
4202 | 4203 | ""
|
4203 |
| - "this divmodsi4 pattern should have been splitted;" |
| 4204 | + { gcc_unreachable(); } |
4204 | 4205 | ""
|
4205 | 4206 | [(set (reg:SI 22) (match_dup 1))
|
4206 | 4207 | (set (reg:SI 18) (match_dup 2))
|
|
4236 | 4237 | [(set_attr "type" "xcall")])
|
4237 | 4238 |
|
4238 | 4239 | (define_insn_and_split "udivmodsi4"
|
4239 |
| - [(parallel [(set (match_operand:SI 0 "pseudo_register_operand" "") |
4240 |
| - (udiv:SI (match_operand:SI 1 "pseudo_register_operand" "") |
4241 |
| - (match_operand:SI 2 "pseudo_register_operand" ""))) |
4242 |
| - (set (match_operand:SI 3 "pseudo_register_operand" "") |
4243 |
| - (umod:SI (match_dup 1) (match_dup 2))) |
4244 |
| - (clobber (reg:SI 18)) |
4245 |
| - (clobber (reg:SI 22)) |
4246 |
| - (clobber (reg:HI 26)) |
4247 |
| - (clobber (reg:HI 30))])] |
| 4240 | + [(set (match_operand:SI 0 "pseudo_register_operand") |
| 4241 | + (udiv:SI (match_operand:SI 1 "pseudo_register_operand") |
| 4242 | + (match_operand:SI 2 "pseudo_register_operand"))) |
| 4243 | + (set (match_operand:SI 3 "pseudo_register_operand") |
| 4244 | + (umod:SI (match_dup 1) |
| 4245 | + (match_dup 2))) |
| 4246 | + (clobber (reg:SI 18)) |
| 4247 | + (clobber (reg:SI 22)) |
| 4248 | + (clobber (reg:HI 26)) |
| 4249 | + (clobber (reg:HI 30))] |
4248 | 4250 | ""
|
4249 |
| - "this udivmodsi4 pattern should have been splitted;" |
| 4251 | + { gcc_unreachable(); } |
4250 | 4252 | ""
|
4251 | 4253 | [(set (reg:SI 22) (match_dup 1))
|
4252 | 4254 | (set (reg:SI 18) (match_dup 2))
|
|
0 commit comments