53 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=riscv32 -global-isel -verify-machineinstrs < %s \3; RUN: | FileCheck %s --check-prefixes=RV324 5define i16 @constant_fold_barrier_i16(i16 %x, i16 %y) {6; RV32-LABEL: constant_fold_barrier_i16:7; RV32: # %bb.0: # %entry8; RV32-NEXT: li a1, 19; RV32-NEXT: slli a1, a1, 1110; RV32-NEXT: and a0, a0, a111; RV32-NEXT: addi a1, a1, 28912; RV32-NEXT: or a0, a0, a113; RV32-NEXT: ret14entry:15 %and = and i16 %x, 204816 %or = or i16 %and, 233717 ret i16 %or18}19 20define void @constant_fold_barrier_i128(ptr %p) {21; RV32-LABEL: constant_fold_barrier_i128:22; RV32: # %bb.0: # %entry23; RV32-NEXT: li a1, 124; RV32-NEXT: lw a2, 0(a0)25; RV32-NEXT: lw a3, 4(a0)26; RV32-NEXT: lw a4, 8(a0)27; RV32-NEXT: lw a5, 12(a0)28; RV32-NEXT: slli a1, a1, 1129; RV32-NEXT: and a2, a2, a130; RV32-NEXT: add a2, a2, a131; RV32-NEXT: sltu a1, a2, a132; RV32-NEXT: mv a6, a133; RV32-NEXT: seqz a7, a134; RV32-NEXT: and a1, a7, a135; RV32-NEXT: mv a1, a136; RV32-NEXT: mv a7, a137; RV32-NEXT: seqz a3, a138; RV32-NEXT: and a1, a3, a139; RV32-NEXT: mv a1, a140; RV32-NEXT: mv a1, a141; RV32-NEXT: sw a2, 0(a0)42; RV32-NEXT: sw a6, 4(a0)43; RV32-NEXT: sw a7, 8(a0)44; RV32-NEXT: sw a1, 12(a0)45; RV32-NEXT: ret46entry:47 %x = load i128, ptr %p48 %and = and i128 %x, 204849 %add = add i128 %and, 204850 store i128 %add, ptr %p51 ret void52}53