re PR target/81763 (Issues with BMI on 32bit x86 apps on GCC 7.1+)
authorUros Bizjak <ubizjak@gmail.com>
Fri, 26 Jan 2018 15:36:32 +0000 (16:36 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Fri, 26 Jan 2018 15:36:32 +0000 (16:36 +0100)
PR target/81763
* config/i386/i386.md (*andndi3_doubleword): Add earlyclobber
to (=&r,r,rm) alternative. Add (=r,0,rm) and (=r,r,0) alternatives.

From-SVN: r257096

gcc/ChangeLog
gcc/config/i386/i386.md

index 2f6426927a5102b8ddd6aa2c7b506c9109f3fb9b..c23cb360725918e60cb92ff9f6c2ae38b5ee0b13 100644 (file)
@@ -1,3 +1,9 @@
+2018-01-26  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/81763
+       * config/i386/i386.md (*andndi3_doubleword): Add earlyclobber
+       to (=&r,r,rm) alternative. Add (=r,0,rm) and (=r,r,0) alternatives.
+
 2018-01-26  Richard Biener  <rguenther@suse.de>
 
        PR rtl-optimization/84003
index 5cd3ec093cd9f0c293c17861620759c2241f0967..fe9649d8738c73d0f0ca945dbe40b4aa0461e968 100644 (file)
 })
 
 (define_insn "*andndi3_doubleword"
-  [(set (match_operand:DI 0 "register_operand" "=r,&r")
+  [(set (match_operand:DI 0 "register_operand" "=&r,r,r,&r")
        (and:DI
-         (not:DI (match_operand:DI 1 "register_operand" "r,0"))
-         (match_operand:DI 2 "nonimmediate_operand" "rm,rm")))
+         (not:DI (match_operand:DI 1 "register_operand" "r,0,r,0"))
+         (match_operand:DI 2 "nonimmediate_operand" "rm,rm,0,rm")))
    (clobber (reg:CC FLAGS_REG))]
   "!TARGET_64BIT && TARGET_STV && TARGET_SSE2"
   "#"
-  [(set_attr "isa" "bmi,*")])
+  [(set_attr "isa" "bmi,bmi,bmi,*")])
 
 (define_split
   [(set (match_operand:DI 0 "register_operand")