[llvm-commits] [llvm] r73622 - in /llvm/trunk: lib/Target/ARM/ARMISelDAGToDAG.cpp lib/Target/ARM/ARMInstrInfo.td lib/Target/ARM/ARMInstrThumb2.td lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp test/CodeGen/ARM/thumb2-add.ll test/CodeGen/ARM/thumb2-m
Anton Korobeynikov
anton at korobeynikov.info
Mon Jun 22 23:36:11 PDT 2009
Hi Evan
>> +def : Pat<(and (or GPR:$src, imm16high:$imm1), imm16high0xffff:
>> $imm2),
>> + (tMOVTi16 GPR:$src, (HI16 imm16high:$imm1))>,
>> + Requires<[HasThumb2]>;
>
> I don't get this pattern. Can you explain?
Dag combiner replaces the original operation sequence (or (and reg,
0xFFFF), (shl imm, 16)) with (and (or reg, (shl imm, 16)), (or 0xFFFF,
(shl imm16, 16))). We're catching this case here. There are movt tests
there. Try to disable the pattern and see, what will happen.
--
With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University
More information about the llvm-commits
mailing list