49 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc --mtriple=loongarch64 --target-abi=lp64s --mattr=-f < %s | FileCheck %s3 4define signext i32 @convert_float_to_i32(i32 %tmp, float %a) nounwind {5; CHECK-LABEL: convert_float_to_i32:6; CHECK: # %bb.0:7; CHECK-NEXT: addi.d $sp, $sp, -168; CHECK-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill9; CHECK-NEXT: move $a0, $a110; CHECK-NEXT: pcaddu18i $ra, %call36(__fixsfsi)11; CHECK-NEXT: jirl $ra, $ra, 012; CHECK-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload13; CHECK-NEXT: addi.d $sp, $sp, 1614; CHECK-NEXT: ret15 %1 = fptosi float %a to i3216 ret i32 %117}18 19define signext i32 @convert_double_to_i32(i32 %tmp, double %a) nounwind {20; CHECK-LABEL: convert_double_to_i32:21; CHECK: # %bb.0:22; CHECK-NEXT: addi.d $sp, $sp, -1623; CHECK-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill24; CHECK-NEXT: move $a0, $a125; CHECK-NEXT: pcaddu18i $ra, %call36(__fixdfsi)26; CHECK-NEXT: jirl $ra, $ra, 027; CHECK-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload28; CHECK-NEXT: addi.d $sp, $sp, 1629; CHECK-NEXT: ret30 %1 = fptosi double %a to i3231 ret i32 %132}33 34define signext i32 @convert_fp128_to_i32(i32 %tmp, fp128 %a) nounwind {35; CHECK-LABEL: convert_fp128_to_i32:36; CHECK: # %bb.0:37; CHECK-NEXT: addi.d $sp, $sp, -1638; CHECK-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill39; CHECK-NEXT: move $a0, $a140; CHECK-NEXT: move $a1, $a241; CHECK-NEXT: pcaddu18i $ra, %call36(__fixtfsi)42; CHECK-NEXT: jirl $ra, $ra, 043; CHECK-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload44; CHECK-NEXT: addi.d $sp, $sp, 1645; CHECK-NEXT: ret46 %1 = fptosi fp128 %a to i3247 ret i32 %148}49