+2019-11-28 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/92602
+ * config/rs6000/rs6000.md (bswap<mode>2_load for HSI): Change the
+ indexed_or_indirect_operand to be memory_operand.
+ (bswap<mode>2_store for HSI): Ditto.
+ (bswapdi2_load): Ditto.
+ (bswapdi2_store): Ditto.
+
2019-11-28 Martin Liska <mliska@suse.cz>
PR debug/46558
(define_insn "bswap<mode>2_load"
[(set (match_operand:HSI 0 "gpc_reg_operand" "=r")
- (bswap:HSI (match_operand:HSI 1 "indexed_or_indirect_operand" "Z")))]
+ (bswap:HSI (match_operand:HSI 1 "memory_operand" "Z")))]
""
"l<wd>brx %0,%y1"
[(set_attr "type" "load")])
(define_insn "bswap<mode>2_store"
- [(set (match_operand:HSI 0 "indexed_or_indirect_operand" "=Z")
+ [(set (match_operand:HSI 0 "memory_operand" "=Z")
(bswap:HSI (match_operand:HSI 1 "gpc_reg_operand" "r")))]
""
"st<wd>brx %1,%y0"
;; Power7/cell has ldbrx/stdbrx, so use it directly
(define_insn "bswapdi2_load"
[(set (match_operand:DI 0 "gpc_reg_operand" "=r")
- (bswap:DI (match_operand:DI 1 "indexed_or_indirect_operand" "Z")))]
+ (bswap:DI (match_operand:DI 1 "memory_operand" "Z")))]
"TARGET_POWERPC64 && TARGET_LDBRX"
"ldbrx %0,%y1"
[(set_attr "type" "load")])
(define_insn "bswapdi2_store"
- [(set (match_operand:DI 0 "indexed_or_indirect_operand" "=Z")
+ [(set (match_operand:DI 0 "memory_operand" "=Z")
(bswap:DI (match_operand:DI 1 "gpc_reg_operand" "r")))]
"TARGET_POWERPC64 && TARGET_LDBRX"
"stdbrx %1,%y0"