mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-21 09:25:07 +00:00
Add a comment describing why transforming (shl x, 1) to (add x, x) is to be
considered safe enough in this context. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133159 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ec3141b27f
commit
a0697a7ef5
@ -1368,6 +1368,11 @@ def : Pat<(store (i8 (trunc_su (srl_su GR16:$src, (i8 8)))), addr:$dst),
|
||||
|
||||
|
||||
// (shl x, 1) ==> (add x, x)
|
||||
// Note that if x is undef (immediate or otherwise), we could theoretically
|
||||
// end up with the two uses of x getting different values, producing a result
|
||||
// where the least significant bit is not 0. However, the probability of this
|
||||
// happening is considered low enough that this is officially not a
|
||||
// "real problem".
|
||||
def : Pat<(shl GR8 :$src1, (i8 1)), (ADD8rr GR8 :$src1, GR8 :$src1)>;
|
||||
def : Pat<(shl GR16:$src1, (i8 1)), (ADD16rr GR16:$src1, GR16:$src1)>;
|
||||
def : Pat<(shl GR32:$src1, (i8 1)), (ADD32rr GR32:$src1, GR32:$src1)>;
|
||||
|
Loading…
x
Reference in New Issue
Block a user