1; RUN: llc --mtriple=loongarch32 --mattr=+d < %s | FileCheck %s --check-prefix=LA32
2; RUN: llc --mtriple=loongarch64 --mattr=+d < %s | FileCheck %s --check-prefix=LA64
3
4;; Exercise the 'fdiv' LLVM IR: https://llvm.org/docs/LangRef.html#fdiv-instruction
5
6define float @fdiv_s(float %x, float %y) {
7; LA32-LABEL: fdiv_s:
8; LA32:       # %bb.0:
9; LA32-NEXT:    fdiv.s $fa0, $fa0, $fa1
10; LA32-NEXT:    jirl $zero, $ra, 0
11;
12; LA64-LABEL: fdiv_s:
13; LA64:       # %bb.0:
14; LA64-NEXT:    fdiv.s $fa0, $fa0, $fa1
15; LA64-NEXT:    jirl $zero, $ra, 0
16  %div = fdiv float %x, %y
17  ret float %div
18}
19
20define double @fdiv_d(double %x, double %y) {
21; LA32-LABEL: fdiv_d:
22; LA32:       # %bb.0:
23; LA32-NEXT:    fdiv.d $fa0, $fa0, $fa1
24; LA32-NEXT:    jirl $zero, $ra, 0
25;
26; LA64-LABEL: fdiv_d:
27; LA64:       # %bb.0:
28; LA64-NEXT:    fdiv.d $fa0, $fa0, $fa1
29; LA64-NEXT:    jirl $zero, $ra, 0
30  %div = fdiv double %x, %y
31  ret double %div
32}
33