brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.7 KiB · 8da7695 Raw
158 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64le-unknown-linux-gnu | FileCheck %s3 4define i32 @test1(i32 %x, i32 %y) {5; CHECK-LABEL: test1:6; CHECK:       # %bb.0: # %entry7; CHECK-NEXT:    rlwimi 4, 3, 16, 0, 158; CHECK-NEXT:    mr 3, 49; CHECK-NEXT:    blr10entry:11  %tmp.3 = shl i32 %x, 1612  %tmp.7 = and i32 %y, 6553513  %tmp.9 = or i32 %tmp.7, %tmp.314  ret i32 %tmp.915}16 17define i32 @test2(i32 %x, i32 %y) {18; CHECK-LABEL: test2:19; CHECK:       # %bb.0: # %entry20; CHECK-NEXT:    rlwimi 3, 4, 16, 0, 1521; CHECK-NEXT:    blr22entry:23  %tmp.7 = and i32 %x, 6553524  %tmp.3 = shl i32 %y, 1625  %tmp.9 = or i32 %tmp.7, %tmp.326  ret i32 %tmp.927}28 29define i32 @test3(i32 %x, i32 %y) {30; CHECK-LABEL: test3:31; CHECK:       # %bb.0: # %entry32; CHECK-NEXT:    rlwimi 4, 3, 16, 16, 3133; CHECK-NEXT:    mr 3, 434; CHECK-NEXT:    blr35entry:36  %tmp.3 = lshr i32 %x, 1637  %tmp.6 = and i32 %y, -6553638  %tmp.7 = or i32 %tmp.6, %tmp.339  ret i32 %tmp.740}41 42define i32 @test4(i32 %x, i32 %y) {43; CHECK-LABEL: test4:44; CHECK:       # %bb.0: # %entry45; CHECK-NEXT:    rlwimi 3, 4, 16, 16, 3146; CHECK-NEXT:    blr47entry:48  %tmp.6 = and i32 %x, -6553649  %tmp.3 = lshr i32 %y, 1650  %tmp.7 = or i32 %tmp.6, %tmp.351  ret i32 %tmp.752}53 54define i32 @test5(i32 %x, i32 %y) {55; CHECK-LABEL: test5:56; CHECK:       # %bb.0: # %entry57; CHECK-NEXT:    rlwimi 4, 3, 1, 0, 1558; CHECK-NEXT:    mr 3, 459; CHECK-NEXT:    blr60entry:61  %tmp.3 = shl i32 %x, 162  %tmp.4 = and i32 %tmp.3, -6553663  %tmp.7 = and i32 %y, 6553564  %tmp.9 = or i32 %tmp.4, %tmp.765  ret i32 %tmp.966}67 68define i32 @test6(i32 %x, i32 %y) {69; CHECK-LABEL: test6:70; CHECK:       # %bb.0: # %entry71; CHECK-NEXT:    rlwimi 3, 4, 1, 0, 1572; CHECK-NEXT:    blr73entry:74  %tmp.7 = and i32 %x, 6553575  %tmp.3 = shl i32 %y, 176  %tmp.4 = and i32 %tmp.3, -6553677  %tmp.9 = or i32 %tmp.4, %tmp.778  ret i32 %tmp.979}80 81define i32 @test7(i32 %x, i32 %y) {82; CHECK-LABEL: test7:83; CHECK:       # %bb.0: # %entry84; CHECK-NEXT:    andis. 3, 3, 6553585; CHECK-NEXT:    rldimi 3, 4, 0, 4886; CHECK-NEXT:    blr87entry:88  %tmp.2 = and i32 %x, -6553689  %tmp.5 = and i32 %y, 6553590  %tmp.7 = or i32 %tmp.5, %tmp.291  ret i32 %tmp.792}93 94define i32 @test8(i32 %bar) {95; CHECK-LABEL: test8:96; CHECK:       # %bb.0: # %entry97; CHECK-NEXT:    rlwimi 3, 3, 1, 30, 3098; CHECK-NEXT:    blr99entry:100  %tmp.3 = shl i32 %bar, 1101  %tmp.4 = and i32 %tmp.3, 2102  %tmp.6 = and i32 %bar, -3103  %tmp.7 = or i32 %tmp.4, %tmp.6104  ret i32 %tmp.7105}106 107define i32 @test9(i32 %a, i32 %b) {108; CHECK-LABEL: test9:109; CHECK:       # %bb.0: # %entry110; CHECK-NEXT:    rlwimi 4, 3, 8, 20, 26111; CHECK-NEXT:    mr 3, 4112; CHECK-NEXT:    blr113entry:114  %r = call i32 @llvm.ppc.rlwimi(i32 %a, i32 %b, i32 8, i32 4064)115  ret i32 %r116}117 118define i32 @test10(i32 %a, i32 %b) {119; CHECK-LABEL: test10:120; CHECK:       # %bb.0: # %entry121; CHECK-NEXT:    blr122entry:123  %r = call i32 @llvm.ppc.rlwimi(i32 %a, i32 %b, i32 0, i32 -1)124  ret i32 %r125}126 127define i32 @test11(i32 %a, i32 %b) {128; CHECK-LABEL: test11:129; CHECK:       # %bb.0: # %entry130; CHECK-NEXT:    rotlwi 3, 3, 8131; CHECK-NEXT:    blr132entry:133  %r = call i32 @llvm.ppc.rlwimi(i32 %a, i32 %b, i32 8, i32 -1)134  ret i32 %r135}136 137define i32 @test12(i32 %a, i32 %b) {138; CHECK-LABEL: test12:139; CHECK:       # %bb.0: # %entry140; CHECK-NEXT:    mr 3, 4141; CHECK-NEXT:    blr142entry:143  %r = call i32 @llvm.ppc.rlwimi(i32 %a, i32 %b, i32 0, i32 0)144  ret i32 %r145}146 147define i32 @test13(i32 %a, i32 %b) {148; CHECK-LABEL: test13:149; CHECK:       # %bb.0: # %entry150; CHECK-NEXT:    rlwimi 3, 4, 0, 27, 19151; CHECK-NEXT:    blr152entry:153  %r = call i32 @llvm.ppc.rlwimi(i32 %a, i32 %b, i32 0, i32 4064)154  ret i32 %r155}156 157declare i32 @llvm.ppc.rlwimi(i32, i32, i32 immarg, i32 immarg)158