brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 8fb6969 Raw
79 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=riscv64 -mattr=+m | FileCheck %s3 4define signext i8 @trunc_nsw_add(i32 signext %x) nounwind {5; CHECK-LABEL: trunc_nsw_add:6; CHECK:       # %bb.0: # %entry7; CHECK-NEXT:    addiw a0, a0, 18; CHECK-NEXT:    ret9entry:10  %add = add nsw i32 %x, 111  %trunc = trunc nsw i32 %add to i812  ret i8 %trunc13}14 15define signext i32 @trunc_nuw_nsw_urem(i64 %x) nounwind {16; CHECK-LABEL: trunc_nuw_nsw_urem:17; CHECK:       # %bb.0: # %entry18; CHECK-NEXT:    lui a1, 21019; CHECK-NEXT:    lui a2, 220; CHECK-NEXT:    addi a1, a1, -116721; CHECK-NEXT:    slli a1, a1, 1222; CHECK-NEXT:    addi a1, a1, 188123; CHECK-NEXT:    mul a1, a0, a124; CHECK-NEXT:    srli a1, a1, 4525; CHECK-NEXT:    addi a2, a2, 180826; CHECK-NEXT:    mul a1, a1, a227; CHECK-NEXT:    subw a0, a0, a128; CHECK-NEXT:    ret29entry:30  %trunc = trunc nuw nsw i64 %x to i3231  %rem = urem i32 %trunc, 1000032  ret i32 %rem33}34 35define i64 @zext_nneg_udiv_trunc_nuw(i64 %x) nounwind {36; CHECK-LABEL: zext_nneg_udiv_trunc_nuw:37; CHECK:       # %bb.0: # %entry38; CHECK-NEXT:    lui a1, 1339; CHECK-NEXT:    addi a1, a1, -81940; CHECK-NEXT:    mul a0, a0, a141; CHECK-NEXT:    srliw a0, a0, 2342; CHECK-NEXT:    ret43entry:44  %trunc = trunc nuw i64 %x to i1645  %div = udiv i16 %trunc, 16046  %ext = zext nneg i16 %div to i6447  ret i64 %ext48}49 50define i64 @sext_udiv_trunc_nuw(i64 %x) nounwind {51; CHECK-LABEL: sext_udiv_trunc_nuw:52; CHECK:       # %bb.0: # %entry53; CHECK-NEXT:    lui a1, 1354; CHECK-NEXT:    addi a1, a1, -81955; CHECK-NEXT:    mul a0, a0, a156; CHECK-NEXT:    srliw a0, a0, 2357; CHECK-NEXT:    ret58entry:59  %trunc = trunc nuw i64 %x to i1660  %div = udiv i16 %trunc, 16061  %ext = sext i16 %div to i6462  ret i64 %ext63}64 65define ptr @gep_nusw_zext_nneg_add_trunc_nuw_nsw(ptr %p, i64 %x) nounwind {66; CHECK-LABEL: gep_nusw_zext_nneg_add_trunc_nuw_nsw:67; CHECK:       # %bb.0: # %entry68; CHECK-NEXT:    slli a1, a1, 269; CHECK-NEXT:    add a0, a1, a070; CHECK-NEXT:    addi a0, a0, 2071; CHECK-NEXT:    ret72entry:73  %trunc = trunc nuw nsw i64 %x to i3274  %add = add nuw nsw i32 %trunc, 575  %offset = zext nneg i32 %add to i6476  %gep = getelementptr nusw float, ptr %p, i64 %offset77  ret ptr %gep78}79