diff options
| author | Jim Grosbach <grosbach@apple.com> | 2010-07-28 23:17:45 +0000 | 
|---|---|---|
| committer | Jim Grosbach <grosbach@apple.com> | 2010-07-28 23:17:45 +0000 | 
| commit | 716a596cf7d2920c55bce9319e8e64ce3e5b7a02 (patch) | |
| tree | 88ab95eb99c9ae967a475f712ccff36c535ced05 /llvm/lib/Target | |
| parent | de0874a4bcecae977b98fbbfacf9ea3dd7a890d2 (diff) | |
| download | bcm5719-llvm-716a596cf7d2920c55bce9319e8e64ce3e5b7a02.tar.gz bcm5719-llvm-716a596cf7d2920c55bce9319e8e64ce3e5b7a02.zip | |
Remove incorrect substitution pattern for UXTB16. It wrongly assumed the input shift was actually a rotate. rdar://8240138
llvm-svn: 109693
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrThumb2.td | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/llvm/lib/Target/ARM/ARMInstrThumb2.td b/llvm/lib/Target/ARM/ARMInstrThumb2.td index 8ba23763e9f..c950fcbfd42 100644 --- a/llvm/lib/Target/ARM/ARMInstrThumb2.td +++ b/llvm/lib/Target/ARM/ARMInstrThumb2.td @@ -1352,8 +1352,12 @@ defm t2UXTH   : T2I_unary_rrot<0b001, "uxth",  defm t2UXTB16 : T2I_unary_rrot_uxtb16<0b011, "uxtb16",                                 UnOpFrag<(and node:$Src, 0x00FF00FF)>>; -def : T2Pat<(and (shl GPR:$Src, (i32 8)), 0xFF00FF), -            (t2UXTB16r_rot GPR:$Src, 24)>, Requires<[HasT2ExtractPack]>; +// FIXME: This pattern incorrectly assumes the shl operator is a rotate. +//        The transformation should probably be done as a combiner action +//        instead so we can include a check for masking back in the upper +//        eight bits of the source into the lower eight bits of the result. +//def : T2Pat<(and (shl GPR:$Src, (i32 8)), 0xFF00FF), +//            (t2UXTB16r_rot GPR:$Src, 24)>, Requires<[HasT2ExtractPack]>;  def : T2Pat<(and (srl GPR:$Src, (i32 8)), 0xFF00FF),              (t2UXTB16r_rot GPR:$Src, 8)>, Requires<[HasT2ExtractPack]>; | 

