brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.3 KiB · b4c77a5 Raw
294 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s3 4define <1 x i1> @test_oeq_q_v1f64(<1 x double> %a, <1 x double> %b) {5; CHECK-LABEL: test_oeq_q_v1f64:6; CHECK:       # %bb.0:7; CHECK-NEXT:    vucomisd %xmm1, %xmm08; CHECK-NEXT:    setnp %cl9; CHECK-NEXT:    sete %al10; CHECK-NEXT:    andb %cl, %al11; CHECK-NEXT:    retq12  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"oeq", metadata !"fpexcept.strict")13  ret <1 x i1> %cond14}15 16define <1 x i1> @test_ogt_q_v1f64(<1 x double> %a, <1 x double> %b) {17; CHECK-LABEL: test_ogt_q_v1f64:18; CHECK:       # %bb.0:19; CHECK-NEXT:    vucomisd %xmm1, %xmm020; CHECK-NEXT:    seta %al21; CHECK-NEXT:    retq22  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ogt", metadata !"fpexcept.strict")23  ret <1 x i1> %cond24}25 26define <1 x i1> @test_oge_q_v1f64(<1 x double> %a, <1 x double> %b) {27; CHECK-LABEL: test_oge_q_v1f64:28; CHECK:       # %bb.0:29; CHECK-NEXT:    vucomisd %xmm1, %xmm030; CHECK-NEXT:    setae %al31; CHECK-NEXT:    retq32  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"oge", metadata !"fpexcept.strict")33  ret <1 x i1> %cond34}35 36define <1 x i1> @test_olt_q_v1f64(<1 x double> %a, <1 x double> %b) {37; CHECK-LABEL: test_olt_q_v1f64:38; CHECK:       # %bb.0:39; CHECK-NEXT:    vucomisd %xmm0, %xmm140; CHECK-NEXT:    seta %al41; CHECK-NEXT:    retq42  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"olt", metadata !"fpexcept.strict")43  ret <1 x i1> %cond44}45 46define <1 x i1> @test_ole_q_v1f64(<1 x double> %a, <1 x double> %b) {47; CHECK-LABEL: test_ole_q_v1f64:48; CHECK:       # %bb.0:49; CHECK-NEXT:    vucomisd %xmm0, %xmm150; CHECK-NEXT:    setae %al51; CHECK-NEXT:    retq52  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ole", metadata !"fpexcept.strict")53  ret <1 x i1> %cond54}55 56define <1 x i1> @test_one_q_v1f64(<1 x double> %a, <1 x double> %b) {57; CHECK-LABEL: test_one_q_v1f64:58; CHECK:       # %bb.0:59; CHECK-NEXT:    vucomisd %xmm1, %xmm060; CHECK-NEXT:    setne %al61; CHECK-NEXT:    retq62  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"one", metadata !"fpexcept.strict")63  ret <1 x i1> %cond64}65 66define <1 x i1> @test_ord_q_v1f64(<1 x double> %a, <1 x double> %b) {67; CHECK-LABEL: test_ord_q_v1f64:68; CHECK:       # %bb.0:69; CHECK-NEXT:    vucomisd %xmm1, %xmm070; CHECK-NEXT:    setnp %al71; CHECK-NEXT:    retq72  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ord", metadata !"fpexcept.strict")73  ret <1 x i1> %cond74}75 76define <1 x i1> @test_ueq_q_v1f64(<1 x double> %a, <1 x double> %b) {77; CHECK-LABEL: test_ueq_q_v1f64:78; CHECK:       # %bb.0:79; CHECK-NEXT:    vucomisd %xmm1, %xmm080; CHECK-NEXT:    setnp %al81; CHECK-NEXT:    retq82  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ord", metadata !"fpexcept.strict")83  ret <1 x i1> %cond84}85 86define <1 x i1> @test_ugt_q_v1f64(<1 x double> %a, <1 x double> %b) {87; CHECK-LABEL: test_ugt_q_v1f64:88; CHECK:       # %bb.0:89; CHECK-NEXT:    vucomisd %xmm0, %xmm190; CHECK-NEXT:    setb %al91; CHECK-NEXT:    retq92  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ugt", metadata !"fpexcept.strict")93  ret <1 x i1> %cond94}95 96define <1 x i1> @test_uge_q_v1f64(<1 x double> %a, <1 x double> %b) {97; CHECK-LABEL: test_uge_q_v1f64:98; CHECK:       # %bb.0:99; CHECK-NEXT:    vucomisd %xmm0, %xmm1100; CHECK-NEXT:    setbe %al101; CHECK-NEXT:    retq102  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"uge", metadata !"fpexcept.strict")103  ret <1 x i1> %cond104}105 106define <1 x i1> @test_ult_q_v1f64(<1 x double> %a, <1 x double> %b) {107; CHECK-LABEL: test_ult_q_v1f64:108; CHECK:       # %bb.0:109; CHECK-NEXT:    vucomisd %xmm1, %xmm0110; CHECK-NEXT:    setb %al111; CHECK-NEXT:    retq112  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ult", metadata !"fpexcept.strict")113  ret <1 x i1> %cond114}115 116define <1 x i1> @test_ule_q_v1f64(<1 x double> %a, <1 x double> %b) {117; CHECK-LABEL: test_ule_q_v1f64:118; CHECK:       # %bb.0:119; CHECK-NEXT:    vucomisd %xmm1, %xmm0120; CHECK-NEXT:    setbe %al121; CHECK-NEXT:    retq122  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ule", metadata !"fpexcept.strict")123  ret <1 x i1> %cond124}125 126define <1 x i1> @test_une_q_v1f64(<1 x double> %a, <1 x double> %b) {127; CHECK-LABEL: test_une_q_v1f64:128; CHECK:       # %bb.0:129; CHECK-NEXT:    vucomisd %xmm1, %xmm0130; CHECK-NEXT:    setp %cl131; CHECK-NEXT:    setne %al132; CHECK-NEXT:    orb %cl, %al133; CHECK-NEXT:    retq134  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"une", metadata !"fpexcept.strict")135  ret <1 x i1> %cond136}137 138define <1 x i1> @test_uno_q_v1f64(<1 x double> %a, <1 x double> %b) {139; CHECK-LABEL: test_uno_q_v1f64:140; CHECK:       # %bb.0:141; CHECK-NEXT:    vucomisd %xmm1, %xmm0142; CHECK-NEXT:    setp %al143; CHECK-NEXT:    retq144  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double> %a, <1 x double> %b, metadata !"uno", metadata !"fpexcept.strict")145  ret <1 x i1> %cond146}147 148define <1 x i1> @test_oeq_s_v1f64(<1 x double> %a, <1 x double> %b) {149; CHECK-LABEL: test_oeq_s_v1f64:150; CHECK:       # %bb.0:151; CHECK-NEXT:    vcomisd %xmm1, %xmm0152; CHECK-NEXT:    setnp %cl153; CHECK-NEXT:    sete %al154; CHECK-NEXT:    andb %cl, %al155; CHECK-NEXT:    retq156  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"oeq", metadata !"fpexcept.strict")157  ret <1 x i1> %cond158}159 160define <1 x i1> @test_ogt_s_v1f64(<1 x double> %a, <1 x double> %b) {161; CHECK-LABEL: test_ogt_s_v1f64:162; CHECK:       # %bb.0:163; CHECK-NEXT:    vcomisd %xmm1, %xmm0164; CHECK-NEXT:    seta %al165; CHECK-NEXT:    retq166  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ogt", metadata !"fpexcept.strict")167  ret <1 x i1> %cond168}169 170define <1 x i1> @test_oge_s_v1f64(<1 x double> %a, <1 x double> %b) {171; CHECK-LABEL: test_oge_s_v1f64:172; CHECK:       # %bb.0:173; CHECK-NEXT:    vcomisd %xmm1, %xmm0174; CHECK-NEXT:    setae %al175; CHECK-NEXT:    retq176  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"oge", metadata !"fpexcept.strict")177  ret <1 x i1> %cond178}179 180define <1 x i1> @test_olt_s_v1f64(<1 x double> %a, <1 x double> %b) {181; CHECK-LABEL: test_olt_s_v1f64:182; CHECK:       # %bb.0:183; CHECK-NEXT:    vcomisd %xmm0, %xmm1184; CHECK-NEXT:    seta %al185; CHECK-NEXT:    retq186  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"olt", metadata !"fpexcept.strict")187  ret <1 x i1> %cond188}189 190define <1 x i1> @test_ole_s_v1f64(<1 x double> %a, <1 x double> %b) {191; CHECK-LABEL: test_ole_s_v1f64:192; CHECK:       # %bb.0:193; CHECK-NEXT:    vcomisd %xmm0, %xmm1194; CHECK-NEXT:    setae %al195; CHECK-NEXT:    retq196  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ole", metadata !"fpexcept.strict")197  ret <1 x i1> %cond198}199 200define <1 x i1> @test_one_s_v1f64(<1 x double> %a, <1 x double> %b) {201; CHECK-LABEL: test_one_s_v1f64:202; CHECK:       # %bb.0:203; CHECK-NEXT:    vcomisd %xmm1, %xmm0204; CHECK-NEXT:    setne %al205; CHECK-NEXT:    retq206  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"one", metadata !"fpexcept.strict")207  ret <1 x i1> %cond208}209 210define <1 x i1> @test_ord_s_v1f64(<1 x double> %a, <1 x double> %b) {211; CHECK-LABEL: test_ord_s_v1f64:212; CHECK:       # %bb.0:213; CHECK-NEXT:    vcomisd %xmm1, %xmm0214; CHECK-NEXT:    setnp %al215; CHECK-NEXT:    retq216  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ord", metadata !"fpexcept.strict")217  ret <1 x i1> %cond218}219 220define <1 x i1> @test_ueq_s_v1f64(<1 x double> %a, <1 x double> %b) {221; CHECK-LABEL: test_ueq_s_v1f64:222; CHECK:       # %bb.0:223; CHECK-NEXT:    vcomisd %xmm1, %xmm0224; CHECK-NEXT:    setnp %al225; CHECK-NEXT:    retq226  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ord", metadata !"fpexcept.strict")227  ret <1 x i1> %cond228}229 230define <1 x i1> @test_ugt_s_v1f64(<1 x double> %a, <1 x double> %b) {231; CHECK-LABEL: test_ugt_s_v1f64:232; CHECK:       # %bb.0:233; CHECK-NEXT:    vcomisd %xmm0, %xmm1234; CHECK-NEXT:    setb %al235; CHECK-NEXT:    retq236  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ugt", metadata !"fpexcept.strict")237  ret <1 x i1> %cond238}239 240define <1 x i1> @test_uge_s_v1f64(<1 x double> %a, <1 x double> %b) {241; CHECK-LABEL: test_uge_s_v1f64:242; CHECK:       # %bb.0:243; CHECK-NEXT:    vcomisd %xmm0, %xmm1244; CHECK-NEXT:    setbe %al245; CHECK-NEXT:    retq246  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"uge", metadata !"fpexcept.strict")247  ret <1 x i1> %cond248}249 250define <1 x i1> @test_ult_s_v1f64(<1 x double> %a, <1 x double> %b) {251; CHECK-LABEL: test_ult_s_v1f64:252; CHECK:       # %bb.0:253; CHECK-NEXT:    vcomisd %xmm1, %xmm0254; CHECK-NEXT:    setb %al255; CHECK-NEXT:    retq256  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ult", metadata !"fpexcept.strict")257  ret <1 x i1> %cond258}259 260define <1 x i1> @test_ule_s_v1f64(<1 x double> %a, <1 x double> %b) {261; CHECK-LABEL: test_ule_s_v1f64:262; CHECK:       # %bb.0:263; CHECK-NEXT:    vcomisd %xmm1, %xmm0264; CHECK-NEXT:    setbe %al265; CHECK-NEXT:    retq266  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"ule", metadata !"fpexcept.strict")267  ret <1 x i1> %cond268}269 270define <1 x i1> @test_une_s_v1f64(<1 x double> %a, <1 x double> %b) {271; CHECK-LABEL: test_une_s_v1f64:272; CHECK:       # %bb.0:273; CHECK-NEXT:    vcomisd %xmm1, %xmm0274; CHECK-NEXT:    setp %cl275; CHECK-NEXT:    setne %al276; CHECK-NEXT:    orb %cl, %al277; CHECK-NEXT:    retq278  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"une", metadata !"fpexcept.strict")279  ret <1 x i1> %cond280}281 282define <1 x i1> @test_uno_s_v1f64(<1 x double> %a, <1 x double> %b) {283; CHECK-LABEL: test_uno_s_v1f64:284; CHECK:       # %bb.0:285; CHECK-NEXT:    vcomisd %xmm1, %xmm0286; CHECK-NEXT:    setp %al287; CHECK-NEXT:    retq288  %cond = tail call <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double> %a, <1 x double> %b, metadata !"uno", metadata !"fpexcept.strict")289  ret <1 x i1> %cond290}291 292declare <1 x i1> @llvm.experimental.constrained.fcmp.v1f64(<1 x double>, <1 x double>, metadata, metadata)293declare <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double>, <1 x double>, metadata, metadata)294