Skip to content

Commit

Permalink
[PowerPC] Regenerate rotate tests
Browse files Browse the repository at this point in the history
  • Loading branch information
RKSimon committed Mar 15, 2020
1 parent 1ec3955 commit 3ffb5ef
Showing 1 changed file with 21 additions and 4 deletions.
25 changes: 21 additions & 4 deletions llvm/test/CodeGen/PowerPC/rotl-2.ll
@@ -1,9 +1,12 @@
; RUN: llc -verify-machineinstrs < %s -mtriple=ppc32-- | grep rotlwi | count 2
; RUN: llc -verify-machineinstrs < %s -mtriple=ppc32-- | grep clrlwi | count 2
; RUN: llc -verify-machineinstrs < %s -mtriple=ppc32-- | grep rotlw | count 4
; RUN: llc -verify-machineinstrs < %s -mtriple=ppc32-- | not grep or
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -verify-machineinstrs < %s -mtriple=ppc32-- | FileCheck %s

define i32 @rotl32(i32 %A, i8 %Amt) nounwind {
; CHECK-LABEL: rotl32:
; CHECK: # %bb.0:
; CHECK-NEXT: clrlwi 4, 4, 24
; CHECK-NEXT: rotlw 3, 3, 4
; CHECK-NEXT: blr
%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]
Expand All @@ -14,6 +17,12 @@ define i32 @rotl32(i32 %A, i8 %Amt) nounwind {
}

define i32 @rotr32(i32 %A, i8 %Amt) nounwind {
; CHECK-LABEL: rotr32:
; CHECK: # %bb.0:
; CHECK-NEXT: subfic 4, 4, 32
; CHECK-NEXT: clrlwi 4, 4, 24
; CHECK-NEXT: rotlw 3, 3, 4
; CHECK-NEXT: blr
%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]
Expand All @@ -24,13 +33,21 @@ define i32 @rotr32(i32 %A, i8 %Amt) nounwind {
}

define i32 @rotli32(i32 %A) nounwind {
; CHECK-LABEL: rotli32:
; CHECK: # %bb.0:
; CHECK-NEXT: rotlwi 3, 3, 5
; CHECK-NEXT: blr
%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) nounwind {
; CHECK-LABEL: rotri32:
; CHECK: # %bb.0:
; CHECK-NEXT: rotlwi 3, 3, 27
; CHECK-NEXT: blr
%B = lshr i32 %A, 5 ; <i32> [#uses=1]
%C = shl i32 %A, 27 ; <i32> [#uses=1]
%D = or i32 %B, %C ; <i32> [#uses=1]
Expand Down

0 comments on commit 3ffb5ef

Please sign in to comment.