brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 9584ab8 Raw
85 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=aarch64-none-linux-gnu < %s -o -| FileCheck %s3 4define i32 @lsr_bfi(i32 %a) {5; CHECK-LABEL: lsr_bfi:6; CHECK:       // %bb.0:7; CHECK-NEXT:    lsr w8, w0, #208; CHECK-NEXT:    bfi w0, w8, #4, #49; CHECK-NEXT:    ret10  %and1 = and i32 %a, -24111  %1 = lshr i32 %a, 1612  %shl = and i32 %1, 24013  %or = or i32 %shl, %and114  ret i32 %or15}16 17define i32 @negative_lsr_bfi0(i32 %a) {18; CHECK-LABEL: negative_lsr_bfi0:19; CHECK:       // %bb.0:20; CHECK-NEXT:    and w0, w0, #0xffffff0f21; CHECK-NEXT:    ret22  %and1 = and i32 %a, -24123  %1 = lshr i32 %a, 2824  %shl = and i32 %1, 24025  %or = or i32 %shl, %and126  ret i32 %or27}28 29define i32 @negative_lsr_bfi1(i32 %a) {30; CHECK-LABEL: negative_lsr_bfi1:31; CHECK:       // %bb.0:32; CHECK-NEXT:    lsr w8, w0, #1633; CHECK-NEXT:    lsr w9, w8, #434; CHECK-NEXT:    bfi w0, w9, #4, #435; CHECK-NEXT:    add w0, w0, w836; CHECK-NEXT:    ret37  %and1 = and i32 %a, -24138  %1 = lshr i32 %a, 1639  %shl = and i32 %1, 24040  %or = or i32 %shl, %and141  %add = add i32 %or, %142  ret i32 %add43}44 45define i64 @lsr_bfix(i64 %a) {46; CHECK-LABEL: lsr_bfix:47; CHECK:       // %bb.0:48; CHECK-NEXT:    lsr x8, x0, #2049; CHECK-NEXT:    bfi x0, x8, #4, #450; CHECK-NEXT:    ret51  %and1 = and i64 %a, -24152  %1 = lshr i64 %a, 1653  %shl = and i64 %1, 24054  %or = or i64 %shl, %and155  ret i64 %or56}57 58define i64 @negative_lsr_bfix0(i64 %a) {59; CHECK-LABEL: negative_lsr_bfix0:60; CHECK:       // %bb.0:61; CHECK-NEXT:    and x0, x0, #0xffffffffffffff0f62; CHECK-NEXT:    ret63  %and1 = and i64 %a, -24164  %1 = lshr i64 %a, 6065  %shl = and i64 %1, 24066  %or = or i64 %shl, %and167  ret i64 %or68}69 70define i64 @negative_lsr_bfix1(i64 %a) {71; CHECK-LABEL: negative_lsr_bfix1:72; CHECK:       // %bb.0:73; CHECK-NEXT:    lsr x8, x0, #1674; CHECK-NEXT:    lsr x9, x8, #475; CHECK-NEXT:    bfi x0, x9, #4, #476; CHECK-NEXT:    add x0, x0, x877; CHECK-NEXT:    ret78  %and1 = and i64 %a, -24179  %1 = lshr i64 %a, 1680  %shl = and i64 %1, 24081  %or = or i64 %shl, %and182  %add = add i64 %or, %183  ret i64 %add84}85