brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 1289892 Raw
71 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc --mtriple=loongarch32 --mattr=+32s,+lasx < %s | FileCheck %s --check-prefixes=CHECK,LA323; RUN: llc --mtriple=loongarch64 --mattr=+lasx < %s | FileCheck %s --check-prefixes=CHECK,LA644 5define void @register_xr1() nounwind {6; CHECK-LABEL: register_xr1:7; CHECK:       # %bb.0: # %entry8; CHECK-NEXT:    #APP9; CHECK-NEXT:    xvldi $xr1, 110; CHECK-NEXT:    #NO_APP11; CHECK-NEXT:    ret12entry:13  %0 = tail call <4 x i64> asm sideeffect "xvldi ${0:u}, 1", "={$xr1}"()14  ret void15}16 17define void @register_xr7() nounwind {18; CHECK-LABEL: register_xr7:19; CHECK:       # %bb.0: # %entry20; CHECK-NEXT:    #APP21; CHECK-NEXT:    xvldi $xr7, 122; CHECK-NEXT:    #NO_APP23; CHECK-NEXT:    ret24entry:25  %0 = tail call <4 x i64> asm sideeffect "xvldi ${0:u}, 1", "={$xr7}"()26  ret void27}28 29define void @register_xr23() nounwind {30; CHECK-LABEL: register_xr23:31; CHECK:       # %bb.0: # %entry32; CHECK-NEXT:    #APP33; CHECK-NEXT:    xvldi $xr23, 134; CHECK-NEXT:    #NO_APP35; CHECK-NEXT:    ret36entry:37  %0 = tail call <4 x i64> asm sideeffect "xvldi ${0:u}, 1", "={$xr23}"()38  ret void39}40 41;; The lower 64-bit of the vector register '$xr31' is overlapped with42;; the floating-point register '$f31' ('$fs7'). And '$f31' ('$fs7')43;; is a callee-saved register which is preserved across calls.44;; That's why the fst.d and fld.d instructions are emitted.45define void @register_xr31() nounwind {46; LA32-LABEL: register_xr31:47; LA32:       # %bb.0: # %entry48; LA32-NEXT:    addi.w $sp, $sp, -1649; LA32-NEXT:    fst.d $fs7, $sp, 8 # 8-byte Folded Spill50; LA32-NEXT:    #APP51; LA32-NEXT:    xvldi $xr31, 152; LA32-NEXT:    #NO_APP53; LA32-NEXT:    fld.d $fs7, $sp, 8 # 8-byte Folded Reload54; LA32-NEXT:    addi.w $sp, $sp, 1655; LA32-NEXT:    ret56;57; LA64-LABEL: register_xr31:58; LA64:       # %bb.0: # %entry59; LA64-NEXT:    addi.d $sp, $sp, -1660; LA64-NEXT:    fst.d $fs7, $sp, 8 # 8-byte Folded Spill61; LA64-NEXT:    #APP62; LA64-NEXT:    xvldi $xr31, 163; LA64-NEXT:    #NO_APP64; LA64-NEXT:    fld.d $fs7, $sp, 8 # 8-byte Folded Reload65; LA64-NEXT:    addi.d $sp, $sp, 1666; LA64-NEXT:    ret67entry:68  %0 = tail call <4 x i64> asm sideeffect "xvldi ${0:u}, 1", "={$xr31}"()69  ret void70}71