Changes in directory llvm/lib/Target/PowerPC:
README.txt updated: 1.43 -> 1.44 --- Log message: transfer some notes from my email to somewhere useful. --- Diffs of the changes: (+26 -0) README.txt | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+) Index: llvm/lib/Target/PowerPC/README.txt diff -u llvm/lib/Target/PowerPC/README.txt:1.43 llvm/lib/Target/PowerPC/README.txt:1.44 --- llvm/lib/Target/PowerPC/README.txt:1.43 Fri Jan 13 19:24:22 2006 +++ llvm/lib/Target/PowerPC/README.txt Mon Jan 16 11:53:00 2006 @@ -225,3 +225,29 @@ void xxx(struct foo F); void bar() { struct foo R = { 1.0, 2.0 }; xxx(R); } +===-------------------------------------------------------------------------=== + +For this: + +int h(int i, int j, int k) { + return (i==0||j==0||k == 0); +} + +We currently emit this: + +_h: + cntlzw r2, r3 + cntlzw r3, r4 + cntlzw r4, r5 + srwi r2, r2, 5 + srwi r3, r3, 5 + srwi r4, r4, 5 + or r2, r3, r2 + or r3, r2, r4 + blr + +The ctlz/shift instructions are created by the isel, so the dag combiner doesn't +have a chance to pull the shifts through the or's (eliminating two +instructions). SETCC nodes should be custom lowered in this case, not expanded +by the isel. + _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits