xref: /llvm-project/llvm/test/CodeGen/RISCV/GlobalISel/float-fclass.ll (revision de6d0d2de0e2df72bd77f29d27addf13ebfbc997)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2
3; RUN: llc -mtriple=riscv32 -mattr=+f -global-isel \
4; RUN:   < %s | FileCheck %s --check-prefixes=CHECK
5; RUN: llc -mtriple=riscv64 -mattr=+f -global-isel \
6; RUN:   < %s | FileCheck %s --check-prefixes=CHECK
7
8define i1 @fpclass(ptr %x) {
9; CHECK-LABEL: fpclass:
10; CHECK:       # %bb.0:
11; CHECK-NEXT:    flw fa5, 0(a0)
12; CHECK-NEXT:    fclass.s a0, fa5
13; CHECK-NEXT:    andi a0, a0, 927
14; CHECK-NEXT:    snez a0, a0
15; CHECK-NEXT:    ret
16  %a = load float, ptr %x
17  %cmp = call i1 @llvm.is.fpclass.f32(float %a, i32 639)
18  ret i1 %cmp
19}
20