brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · 003d3ae Raw
160 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc -mtriple=riscv32 -mattr=+zfbfmin -verify-machineinstrs \3; RUN:   -target-abi ilp32f < %s | FileCheck %s4; RUN: llc -mtriple=riscv64 -mattr=+zfbfmin -verify-machineinstrs \5; RUN:   -target-abi lp64f < %s | FileCheck %s6 7define bfloat @select_icmp_eq(i32 signext %a, i32 signext %b, bfloat %c, bfloat %d) {8; CHECK-LABEL: select_icmp_eq:9; CHECK:       # %bb.0:10; CHECK-NEXT:    beq a0, a1, .LBB0_211; CHECK-NEXT:  # %bb.1:12; CHECK-NEXT:    fmv.s fa0, fa113; CHECK-NEXT:  .LBB0_2:14; CHECK-NEXT:    ret15  %1 = icmp eq i32 %a, %b16  %2 = select i1 %1, bfloat %c, bfloat %d17  ret bfloat %218}19 20define bfloat @select_icmp_ne(i32 signext %a, i32 signext %b, bfloat %c, bfloat %d) {21; CHECK-LABEL: select_icmp_ne:22; CHECK:       # %bb.0:23; CHECK-NEXT:    bne a0, a1, .LBB1_224; CHECK-NEXT:  # %bb.1:25; CHECK-NEXT:    fmv.s fa0, fa126; CHECK-NEXT:  .LBB1_2:27; CHECK-NEXT:    ret28  %1 = icmp ne i32 %a, %b29  %2 = select i1 %1, bfloat %c, bfloat %d30  ret bfloat %231}32 33define bfloat @select_icmp_ugt(i32 signext %a, i32 signext %b, bfloat %c, bfloat %d) {34; CHECK-LABEL: select_icmp_ugt:35; CHECK:       # %bb.0:36; CHECK-NEXT:    bltu a1, a0, .LBB2_237; CHECK-NEXT:  # %bb.1:38; CHECK-NEXT:    fmv.s fa0, fa139; CHECK-NEXT:  .LBB2_2:40; CHECK-NEXT:    ret41  %1 = icmp ugt i32 %a, %b42  %2 = select i1 %1, bfloat %c, bfloat %d43  ret bfloat %244}45 46define bfloat @select_icmp_uge(i32 signext %a, i32 signext %b, bfloat %c, bfloat %d) {47; CHECK-LABEL: select_icmp_uge:48; CHECK:       # %bb.0:49; CHECK-NEXT:    bgeu a0, a1, .LBB3_250; CHECK-NEXT:  # %bb.1:51; CHECK-NEXT:    fmv.s fa0, fa152; CHECK-NEXT:  .LBB3_2:53; CHECK-NEXT:    ret54  %1 = icmp uge i32 %a, %b55  %2 = select i1 %1, bfloat %c, bfloat %d56  ret bfloat %257}58 59define bfloat @select_icmp_ult(i32 signext %a, i32 signext %b, bfloat %c, bfloat %d) {60; CHECK-LABEL: select_icmp_ult:61; CHECK:       # %bb.0:62; CHECK-NEXT:    bltu a0, a1, .LBB4_263; CHECK-NEXT:  # %bb.1:64; CHECK-NEXT:    fmv.s fa0, fa165; CHECK-NEXT:  .LBB4_2:66; CHECK-NEXT:    ret67  %1 = icmp ult i32 %a, %b68  %2 = select i1 %1, bfloat %c, bfloat %d69  ret bfloat %270}71 72define bfloat @select_icmp_ule(i32 signext %a, i32 signext %b, bfloat %c, bfloat %d) {73; CHECK-LABEL: select_icmp_ule:74; CHECK:       # %bb.0:75; CHECK-NEXT:    bgeu a1, a0, .LBB5_276; CHECK-NEXT:  # %bb.1:77; CHECK-NEXT:    fmv.s fa0, fa178; CHECK-NEXT:  .LBB5_2:79; CHECK-NEXT:    ret80  %1 = icmp ule i32 %a, %b81  %2 = select i1 %1, bfloat %c, bfloat %d82  ret bfloat %283}84 85define bfloat @select_icmp_sgt(i32 signext %a, i32 signext %b, bfloat %c, bfloat %d) {86; CHECK-LABEL: select_icmp_sgt:87; CHECK:       # %bb.0:88; CHECK-NEXT:    blt a1, a0, .LBB6_289; CHECK-NEXT:  # %bb.1:90; CHECK-NEXT:    fmv.s fa0, fa191; CHECK-NEXT:  .LBB6_2:92; CHECK-NEXT:    ret93  %1 = icmp sgt i32 %a, %b94  %2 = select i1 %1, bfloat %c, bfloat %d95  ret bfloat %296}97 98define bfloat @select_icmp_sge(i32 signext %a, i32 signext %b, bfloat %c, bfloat %d) {99; CHECK-LABEL: select_icmp_sge:100; CHECK:       # %bb.0:101; CHECK-NEXT:    bge a0, a1, .LBB7_2102; CHECK-NEXT:  # %bb.1:103; CHECK-NEXT:    fmv.s fa0, fa1104; CHECK-NEXT:  .LBB7_2:105; CHECK-NEXT:    ret106  %1 = icmp sge i32 %a, %b107  %2 = select i1 %1, bfloat %c, bfloat %d108  ret bfloat %2109}110 111define bfloat @select_icmp_slt(i32 signext %a, i32 signext %b, bfloat %c, bfloat %d) {112; CHECK-LABEL: select_icmp_slt:113; CHECK:       # %bb.0:114; CHECK-NEXT:    blt a0, a1, .LBB8_2115; CHECK-NEXT:  # %bb.1:116; CHECK-NEXT:    fmv.s fa0, fa1117; CHECK-NEXT:  .LBB8_2:118; CHECK-NEXT:    ret119  %1 = icmp slt i32 %a, %b120  %2 = select i1 %1, bfloat %c, bfloat %d121  ret bfloat %2122}123 124define bfloat @select_icmp_sle(i32 signext %a, i32 signext %b, bfloat %c, bfloat %d) {125; CHECK-LABEL: select_icmp_sle:126; CHECK:       # %bb.0:127; CHECK-NEXT:    bge a1, a0, .LBB9_2128; CHECK-NEXT:  # %bb.1:129; CHECK-NEXT:    fmv.s fa0, fa1130; CHECK-NEXT:  .LBB9_2:131; CHECK-NEXT:    ret132  %1 = icmp sle i32 %a, %b133  %2 = select i1 %1, bfloat %c, bfloat %d134  ret bfloat %2135}136 137define bfloat @select_icmp_slt_one(i32 signext %a) {138; CHECK-LABEL: select_icmp_slt_one:139; CHECK:       # %bb.0:140; CHECK-NEXT:    slti a0, a0, 1141; CHECK-NEXT:    fcvt.s.w fa5, a0142; CHECK-NEXT:    fcvt.bf16.s fa0, fa5143; CHECK-NEXT:    ret144  %1 = icmp slt i32 %a, 1145  %2 = select i1 %1, bfloat 1.000000e+00, bfloat 0.000000e+00146  ret bfloat %2147}148 149define bfloat @select_icmp_sgt_zero(i32 signext %a) {150; CHECK-LABEL: select_icmp_sgt_zero:151; CHECK:       # %bb.0:152; CHECK-NEXT:    slti a0, a0, 1153; CHECK-NEXT:    fcvt.s.w fa5, a0154; CHECK-NEXT:    fcvt.bf16.s fa0, fa5155; CHECK-NEXT:    ret156  %1 = icmp sgt i32 %a, 0157  %2 = select i1 %1, bfloat 0.000000e+00, bfloat 1.000000e+00158  ret bfloat %2159}160