* config/rs6000/rs6000.md (maxsf3): Use rs6000_emit_minmax.
(maxsf3+1): Delete. (minsf3): Use rs6000_emit_minmax. (minsf3+1): Generalize to handle both SMIN and SMAX. Use rs6000_emit_minmax. (movsfcc): Use rs6000_emit_cmove. (fselsfsf4): Don't compare a CONST_INT with a floating-point value. Don't generate emit_fselsfsf4. (fseldfsf4): Likewise. (maxdf3): Use rs6000_emit_minmax. (maxdf3+1): Delete. (mindf3): Use rs6000_emit_minmax. (mindf3+1): Generalize to handle both SMIN and SMAX. Use rs6000_emit_minmax. (movdfcc): Use rs6000_emit_cmove. (fseldfdf4): Don't compare a CONST_INT with a floating-point value. Don't generate emit_fselsfsf4. (fselsfdf4): Likewise. * config/rs6000/rs6000.c (zero_fp_constant): New predicate. (min_max_operator): New predicate. (rs6000_emit_cmove): New function. (rs6000_emit_minmax): New function. * config/rs6000/rs6000-protos.h: Prototype new functions. * config/rs6000/rs6000.h (PREDICATE_CODES): Add zero_fp_constant and min_max_operator. * config/rs6000/rs6000.c (output_cbranch): Handle all conditional types in the switch statement. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42404 138bc75d-0d04-0410-961f-82ee72b054a4
Showing
- gcc/ChangeLog 31 additions, 0 deletionsgcc/ChangeLog
- gcc/config/rs6000/rs6000-protos.h 4 additions, 0 deletionsgcc/config/rs6000/rs6000-protos.h
- gcc/config/rs6000/rs6000.c 205 additions, 6 deletionsgcc/config/rs6000/rs6000.c
- gcc/config/rs6000/rs6000.h 3 additions, 1 deletiongcc/config/rs6000/rs6000.h
- gcc/config/rs6000/rs6000.md 54 additions, 198 deletionsgcc/config/rs6000/rs6000.md
Loading
Please register or sign in to comment