brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · a4b2363 Raw
32 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; All of these ands and shifts should be folded into rlw[i]nm instructions3; RUN: llc < %s -verify-machineinstrs -mtriple=ppc32-- | FileCheck %s4 5define i32 @test1(i32 %X, i32 %Y) {6; CHECK-LABEL: test1:7; CHECK:       # %bb.0: # %entry8; CHECK-NEXT:    rlwnm 3, 3, 4, 25, 319; CHECK-NEXT:    blr10entry:11	%tmp = trunc i32 %Y to i8		; <i8> [#uses=2]12	%tmp1 = shl i32 %X, %Y		; <i32> [#uses=1]13	%tmp2 = sub i32 32, %Y		; <i8> [#uses=1]14	%tmp3 = lshr i32 %X, %tmp2		; <i32> [#uses=1]15	%tmp4 = or i32 %tmp1, %tmp3		; <i32> [#uses=1]16	%tmp6 = and i32 %tmp4, 127		; <i32> [#uses=1]17	ret i32 %tmp618}19 20define i32 @test2(i32 %X) {21; CHECK-LABEL: test2:22; CHECK:       # %bb.0: # %entry23; CHECK-NEXT:    rlwinm 3, 3, 5, 25, 3124; CHECK-NEXT:    blr25entry:26	%tmp1 = lshr i32 %X, 27		; <i32> [#uses=1]27	%tmp2 = shl i32 %X, 5		; <i32> [#uses=1]28	%tmp2.masked = and i32 %tmp2, 96		; <i32> [#uses=1]29	%tmp5 = or i32 %tmp1, %tmp2.masked		; <i32> [#uses=1]30	ret i32 %tmp531}32