brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · abc555b Raw
77 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc -mtriple=riscv64 -mattr=+zfinx,+zdinx < %s | FileCheck %s3 4; Check the GHC call convention works for zfinx, zdinx (rv64)5 6@f1 = external global float7@f2 = external global float8@f3 = external global float9@f4 = external global float10@f5 = external global float11@f6 = external global float12 13define ghccc void @caller_float() nounwind {14; CHECK-LABEL: caller_float:15; CHECK:       # %bb.0: # %entry16; CHECK-NEXT:    lui a0, %hi(f6)17; CHECK-NEXT:    lui a1, %hi(f5)18; CHECK-NEXT:    lui a2, %hi(f4)19; CHECK-NEXT:    lui a3, %hi(f3)20; CHECK-NEXT:    lui a4, %hi(f2)21; CHECK-NEXT:    lui a5, %hi(f1)22; CHECK-NEXT:    lw s6, %lo(f6)(a0)23; CHECK-NEXT:    lw s5, %lo(f5)(a1)24; CHECK-NEXT:    lw s4, %lo(f4)(a2)25; CHECK-NEXT:    lw s3, %lo(f3)(a3)26; CHECK-NEXT:    lw s2, %lo(f2)(a4)27; CHECK-NEXT:    lw s1, %lo(f1)(a5)28; CHECK-NEXT:    tail callee_float29entry:30  %0  = load float, ptr @f631  %1  = load float, ptr @f532  %2  = load float, ptr @f433  %3  = load float, ptr @f334  %4 = load float, ptr @f235  %5 = load float, ptr @f136  tail call ghccc void @callee_float(float %5, float %4, float %3, float %2, float %1, float %0) nounwind37  ret void38}39 40declare ghccc void @callee_float(float, float, float, float, float, float)41 42@d1 = external global double43@d2 = external global double44@d3 = external global double45@d4 = external global double46@d5 = external global double47@d6 = external global double48 49define ghccc void @caller_double() nounwind {50; CHECK-LABEL: caller_double:51; CHECK:       # %bb.0: # %entry52; CHECK-NEXT:    lui a0, %hi(d6)53; CHECK-NEXT:    lui a1, %hi(d5)54; CHECK-NEXT:    lui a2, %hi(d4)55; CHECK-NEXT:    lui a3, %hi(d3)56; CHECK-NEXT:    lui a4, %hi(d2)57; CHECK-NEXT:    lui a5, %hi(d1)58; CHECK-NEXT:    ld s6, %lo(d6)(a0)59; CHECK-NEXT:    ld s5, %lo(d5)(a1)60; CHECK-NEXT:    ld s4, %lo(d4)(a2)61; CHECK-NEXT:    ld s3, %lo(d3)(a3)62; CHECK-NEXT:    ld s2, %lo(d2)(a4)63; CHECK-NEXT:    ld s1, %lo(d1)(a5)64; CHECK-NEXT:    tail callee_double65entry:66  %0  = load double, ptr @d667  %1  = load double, ptr @d568  %2  = load double, ptr @d469  %3  = load double, ptr @d370  %4 = load double, ptr @d271  %5 = load double, ptr @d172  tail call ghccc void @callee_double(double %5, double %4, double %3, double %2, double %1, double %0) nounwind73  ret void74}75 76declare ghccc void @callee_double(double, double, double, double, double, double)77