1f7bc7c29SHsiangkai Wang; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2a0a76feeSShao-Ce SUN; RUN: llc -mtriple=riscv32 -mattr=+zfh -verify-machineinstrs \ 384bacb18SShao-Ce SUN; RUN: -target-abi ilp32f < %s | FileCheck %s 4a0a76feeSShao-Ce SUN; RUN: llc -mtriple=riscv64 -mattr=+zfh -verify-machineinstrs \ 584bacb18SShao-Ce SUN; RUN: -target-abi lp64f < %s | FileCheck %s 6*773b0aaaSQihan Cai; RUN: llc -mtriple=riscv32 -mattr=+zhinx -verify-machineinstrs \ 7*773b0aaaSQihan Cai; RUN: -target-abi ilp32 < %s | FileCheck -check-prefixes=CHECKIZHINX %s 8*773b0aaaSQihan Cai; RUN: llc -mtriple=riscv64 -mattr=+zhinx -verify-machineinstrs \ 9*773b0aaaSQihan Cai; RUN: -target-abi lp64 < %s | FileCheck -check-prefixes=CHECKIZHINX %s 107b50c183SMonk Chiang; RUN: llc -mtriple=riscv32 -mattr=+zfhmin -verify-machineinstrs \ 117b50c183SMonk Chiang; RUN: -target-abi ilp32f < %s | FileCheck -check-prefixes=CHECKIZFHMIN %s 127b50c183SMonk Chiang; RUN: llc -mtriple=riscv64 -mattr=+zfhmin -verify-machineinstrs \ 137b50c183SMonk Chiang; RUN: -target-abi lp64f < %s | FileCheck -check-prefixes=CHECKIZFHMIN %s 14*773b0aaaSQihan Cai; RUN: llc -mtriple=riscv32 -mattr=+zhinxmin -verify-machineinstrs \ 15*773b0aaaSQihan Cai; RUN: -target-abi ilp32 < %s | FileCheck -check-prefixes=CHECKIZHINXMIN %s 16*773b0aaaSQihan Cai; RUN: llc -mtriple=riscv64 -mattr=+zhinxmin -verify-machineinstrs \ 17*773b0aaaSQihan Cai; RUN: -target-abi lp64 < %s | FileCheck -check-prefixes=CHECKIZHINXMIN %s 18f7bc7c29SHsiangkai Wang 19f7bc7c29SHsiangkai Wangdefine zeroext i1 @half_is_nan(half %a) nounwind { 2084bacb18SShao-Ce SUN; CHECK-LABEL: half_is_nan: 2184bacb18SShao-Ce SUN; CHECK: # %bb.0: 2284bacb18SShao-Ce SUN; CHECK-NEXT: feq.h a0, fa0, fa0 2384bacb18SShao-Ce SUN; CHECK-NEXT: xori a0, a0, 1 2484bacb18SShao-Ce SUN; CHECK-NEXT: ret 257b50c183SMonk Chiang; 26*773b0aaaSQihan Cai; CHECKIZHINX-LABEL: half_is_nan: 27*773b0aaaSQihan Cai; CHECKIZHINX: # %bb.0: 28*773b0aaaSQihan Cai; CHECKIZHINX-NEXT: feq.h a0, a0, a0 29*773b0aaaSQihan Cai; CHECKIZHINX-NEXT: xori a0, a0, 1 30*773b0aaaSQihan Cai; CHECKIZHINX-NEXT: ret 31*773b0aaaSQihan Cai; 327b50c183SMonk Chiang; CHECKIZFHMIN-LABEL: half_is_nan: 337b50c183SMonk Chiang; CHECKIZFHMIN: # %bb.0: 347b0c4184SCraig Topper; CHECKIZFHMIN-NEXT: fcvt.s.h fa5, fa0 357b0c4184SCraig Topper; CHECKIZFHMIN-NEXT: feq.s a0, fa5, fa5 367b50c183SMonk Chiang; CHECKIZFHMIN-NEXT: xori a0, a0, 1 377b50c183SMonk Chiang; CHECKIZFHMIN-NEXT: ret 38*773b0aaaSQihan Cai; 39*773b0aaaSQihan Cai; CHECKIZHINXMIN-LABEL: half_is_nan: 40*773b0aaaSQihan Cai; CHECKIZHINXMIN: # %bb.0: 41*773b0aaaSQihan Cai; CHECKIZHINXMIN-NEXT: fcvt.s.h a0, a0 42*773b0aaaSQihan Cai; CHECKIZHINXMIN-NEXT: feq.s a0, a0, a0 43*773b0aaaSQihan Cai; CHECKIZHINXMIN-NEXT: xori a0, a0, 1 44*773b0aaaSQihan Cai; CHECKIZHINXMIN-NEXT: ret 45f7bc7c29SHsiangkai Wang %1 = fcmp uno half %a, 0.000000e+00 46f7bc7c29SHsiangkai Wang ret i1 %1 47f7bc7c29SHsiangkai Wang} 48f7bc7c29SHsiangkai Wang 49f7bc7c29SHsiangkai Wangdefine zeroext i1 @half_not_nan(half %a) nounwind { 5084bacb18SShao-Ce SUN; CHECK-LABEL: half_not_nan: 5184bacb18SShao-Ce SUN; CHECK: # %bb.0: 5284bacb18SShao-Ce SUN; CHECK-NEXT: feq.h a0, fa0, fa0 5384bacb18SShao-Ce SUN; CHECK-NEXT: ret 547b50c183SMonk Chiang; 55*773b0aaaSQihan Cai; CHECKIZHINX-LABEL: half_not_nan: 56*773b0aaaSQihan Cai; CHECKIZHINX: # %bb.0: 57*773b0aaaSQihan Cai; CHECKIZHINX-NEXT: feq.h a0, a0, a0 58*773b0aaaSQihan Cai; CHECKIZHINX-NEXT: ret 59*773b0aaaSQihan Cai; 607b50c183SMonk Chiang; CHECKIZFHMIN-LABEL: half_not_nan: 617b50c183SMonk Chiang; CHECKIZFHMIN: # %bb.0: 627b0c4184SCraig Topper; CHECKIZFHMIN-NEXT: fcvt.s.h fa5, fa0 637b0c4184SCraig Topper; CHECKIZFHMIN-NEXT: feq.s a0, fa5, fa5 647b50c183SMonk Chiang; CHECKIZFHMIN-NEXT: ret 65*773b0aaaSQihan Cai; 66*773b0aaaSQihan Cai; CHECKIZHINXMIN-LABEL: half_not_nan: 67*773b0aaaSQihan Cai; CHECKIZHINXMIN: # %bb.0: 68*773b0aaaSQihan Cai; CHECKIZHINXMIN-NEXT: fcvt.s.h a0, a0 69*773b0aaaSQihan Cai; CHECKIZHINXMIN-NEXT: feq.s a0, a0, a0 70*773b0aaaSQihan Cai; CHECKIZHINXMIN-NEXT: ret 71f7bc7c29SHsiangkai Wang %1 = fcmp ord half %a, 0.000000e+00 72f7bc7c29SHsiangkai Wang ret i1 %1 73f7bc7c29SHsiangkai Wang} 74