Changes in directory llvm/test/CodeGen/PowerPC:
rotl-2.ll added (r1.1) --- Log message: Add a regtest for cases we now recognize as rotates, thanks to Scott Michel's recent dagcombine patch --- Diffs of the changes: (+38 -0) rotl-2.ll | 38 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 38 insertions(+) Index: llvm/test/CodeGen/PowerPC/rotl-2.ll diff -c /dev/null llvm/test/CodeGen/PowerPC/rotl-2.ll:1.1 *** /dev/null Mon Apr 2 17:09:04 2007 --- llvm/test/CodeGen/PowerPC/rotl-2.ll Mon Apr 2 17:08:54 2007 *************** *** 0 **** --- 1,38 ---- + ; RUN: llvm-as < %s | llc -march=ppc32 | grep rlwinm | wc -l | grep 4 && + ; RUN: llvm-as < %s | llc -march=ppc32 | grep rlwnm | wc -l | grep 2 && + ; RUN: llvm-as < %s | llc -march=ppc32 | not grep or + + define i32 @rotl32(i32 %A, i8 %Amt) { + %shift.upgrd.1 = zext i8 %Amt to i32 ; <i32> [#uses=1] + %B = shl i32 %A, %shift.upgrd.1 ; <i32> [#uses=1] + %Amt2 = sub i8 32, %Amt ; <i8> [#uses=1] + %shift.upgrd.2 = zext i8 %Amt2 to i32 ; <i32> [#uses=1] + %C = lshr i32 %A, %shift.upgrd.2 ; <i32> [#uses=1] + %D = or i32 %B, %C ; <i32> [#uses=1] + ret i32 %D + } + + define i32 @rotr32(i32 %A, i8 %Amt) { + %shift.upgrd.3 = zext i8 %Amt to i32 ; <i32> [#uses=1] + %B = lshr i32 %A, %shift.upgrd.3 ; <i32> [#uses=1] + %Amt2 = sub i8 32, %Amt ; <i8> [#uses=1] + %shift.upgrd.4 = zext i8 %Amt2 to i32 ; <i32> [#uses=1] + %C = shl i32 %A, %shift.upgrd.4 ; <i32> [#uses=1] + %D = or i32 %B, %C ; <i32> [#uses=1] + ret i32 %D + } + + define i32 @rotli32(i32 %A) { + %B = shl i32 %A, 5 ; <i32> [#uses=1] + %C = lshr i32 %A, 27 ; <i32> [#uses=1] + %D = or i32 %B, %C ; <i32> [#uses=1] + ret i32 %D + } + + define i32 @rotri32(i32 %A) { + %B = lshr i32 %A, 5 ; <i32> [#uses=1] + %C = shl i32 %A, 27 ; <i32> [#uses=1] + %D = or i32 %B, %C ; <i32> [#uses=1] + ret i32 %D + } + _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits