xref: /llvm-project/llvm/test/CodeGen/LoongArch/ir-instruction/fneg.ll (revision ed078c48f0d7b499a4565d4da2dde22a4dbf19d9)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc --mtriple=loongarch32 --mattr=+d < %s | FileCheck %s --check-prefix=LA32
3; RUN: llc --mtriple=loongarch64 --mattr=+d < %s | FileCheck %s --check-prefix=LA64
4
5;; Exercise the 'fneg' LLVM IR: https://llvm.org/docs/LangRef.html#fneg-instruction
6
7define float @fneg_s(float %x) {
8; LA32-LABEL: fneg_s:
9; LA32:       # %bb.0:
10; LA32-NEXT:    fneg.s $fa0, $fa0
11; LA32-NEXT:    ret
12;
13; LA64-LABEL: fneg_s:
14; LA64:       # %bb.0:
15; LA64-NEXT:    fneg.s $fa0, $fa0
16; LA64-NEXT:    ret
17  %neg = fneg float %x
18  ret float %neg
19}
20
21define double @fneg_d(double %x) {
22; LA32-LABEL: fneg_d:
23; LA32:       # %bb.0:
24; LA32-NEXT:    fneg.d $fa0, $fa0
25; LA32-NEXT:    ret
26;
27; LA64-LABEL: fneg_d:
28; LA64:       # %bb.0:
29; LA64-NEXT:    fneg.d $fa0, $fa0
30; LA64-NEXT:    ret
31  %neg = fneg double %x
32  ret double %neg
33}
34