Observed on the releases/gcc-6 branch of https://github.com/gcc-mirror/gcc . There is a commit backported from the main branch, which looks like the attached file when extracting it with "git format-patch -1 c86135dec7521ca3a877fa455b449dd8aa068a9c". When trying to apply that patch with "git am", you get an error message: error: config/rs6000/rs6000.md (working copy): does not exist in index Apparently git tries to apply the diff from the git commit message, instead of the real diff.
>From c86135dec7521ca3a877fa455b449dd8aa068a9c Mon Sep 17 00:00:00 2001 From: Aaron Sawdey <acsawdey@xxxxxxxxxxxxxxxxxx> Date: Tue, 14 Mar 2017 14:43:03 +0000 Subject: [PATCH] This showed up in power9 code for __divkf3 software float support and caused a... This showed up in power9 code for __divkf3 software float support and caused a divd to be emitted where we needed a divdu. Index: gcc/config/rs6000/rs6000.md =================================================================== --- gcc/config/rs6000/rs6000.md (revision 246123) +++ gcc/config/rs6000/rs6000.md (working copy) @@ -3063,8 +3063,8 @@ && ! reg_mentioned_p (operands[3], operands[1]) && ! reg_mentioned_p (operands[3], operands[2])" [(set (match_dup 0) - (div:GPR (match_dup 1) - (match_dup 2))) + (udiv:GPR (match_dup 1) + (match_dup 2))) (set (match_dup 3) (mult:GPR (match_dup 0) (match_dup 2))) 2017-03-14 Aaron Sawdey <acsawdey@xxxxxxxxxxxxxxxxxx> Backport from mainline 2017-02-28 Aaron Sawdey <acsawdey@xxxxxxxxxxxxxxxxxx> PR target/79752 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit udiv rather than div since input pattern is unsigned. From-SVN: r246127 --- gcc/ChangeLog | 9 +++++++++ gcc/config/rs6000/rs6000.md | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a65effcebc2..9a9858ce86e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2017-03-14 Aaron Sawdey <acsawdey@xxxxxxxxxxxxxxxxxx> + + Backport from mainline + 2017-02-28 Aaron Sawdey <acsawdey@xxxxxxxxxxxxxxxxxx> + + PR target/79752 + * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit + udiv rather than div since input pattern is unsigned. + 2017-03-14 Richard Biener <rguenther@xxxxxxx> Backport from mainline diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index b2592b55a25..c54e7271302 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -3063,8 +3063,8 @@ && ! reg_mentioned_p (operands[3], operands[1]) && ! reg_mentioned_p (operands[3], operands[2])" [(set (match_dup 0) - (div:GPR (match_dup 1) - (match_dup 2))) + (udiv:GPR (match_dup 1) + (match_dup 2))) (set (match_dup 3) (mult:GPR (match_dup 0) (match_dup 2))) -- 2.24.0