brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 1ee30ac Raw
56 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs < %s -mtriple=ppc32-- | FileCheck %s3; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-ibm-aix-xcoff | FileCheck %s4 5define i32 @rotl32(i32 %A, i8 %Amt) nounwind {6; CHECK-LABEL: rotl32:7; CHECK:       # %bb.0:8; CHECK-NEXT:    rotlw 3, 3, 49; CHECK-NEXT:    blr10	%shift.upgrd.1 = zext i8 %Amt to i32		; <i32> [#uses=1]11	%B = shl i32 %A, %shift.upgrd.1		; <i32> [#uses=1]12	%Amt2 = sub i8 32, %Amt		; <i8> [#uses=1]13	%shift.upgrd.2 = zext i8 %Amt2 to i32		; <i32> [#uses=1]14	%C = lshr i32 %A, %shift.upgrd.2		; <i32> [#uses=1]15	%D = or i32 %B, %C		; <i32> [#uses=1]16	ret i32 %D17}18 19define i32 @rotr32(i32 %A, i8 %Amt) nounwind {20; CHECK-LABEL: rotr32:21; CHECK:       # %bb.0:22; CHECK-NEXT:    subfic 4, 4, 3223; CHECK-NEXT:    rotlw 3, 3, 424; CHECK-NEXT:    blr25	%shift.upgrd.3 = zext i8 %Amt to i32		; <i32> [#uses=1]26	%B = lshr i32 %A, %shift.upgrd.3		; <i32> [#uses=1]27	%Amt2 = sub i8 32, %Amt		; <i8> [#uses=1]28	%shift.upgrd.4 = zext i8 %Amt2 to i32		; <i32> [#uses=1]29	%C = shl i32 %A, %shift.upgrd.4		; <i32> [#uses=1]30	%D = or i32 %B, %C		; <i32> [#uses=1]31	ret i32 %D32}33 34define i32 @rotli32(i32 %A) nounwind {35; CHECK-LABEL: rotli32:36; CHECK:       # %bb.0:37; CHECK-NEXT:    rotlwi 3, 3, 538; CHECK-NEXT:    blr39	%B = shl i32 %A, 5		; <i32> [#uses=1]40	%C = lshr i32 %A, 27		; <i32> [#uses=1]41	%D = or i32 %B, %C		; <i32> [#uses=1]42	ret i32 %D43}44 45define i32 @rotri32(i32 %A) nounwind {46; CHECK-LABEL: rotri32:47; CHECK:       # %bb.0:48; CHECK-NEXT:    rotlwi 3, 3, 2749; CHECK-NEXT:    blr50	%B = lshr i32 %A, 5		; <i32> [#uses=1]51	%C = shl i32 %A, 27		; <i32> [#uses=1]52	%D = or i32 %B, %C		; <i32> [#uses=1]53	ret i32 %D54}55 56