brintos

brintos / llvm-project-archived public Read only

0
0
Text · 18.4 KiB · 581d1a6 Raw
532 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc --mtriple=loongarch32 --mattr=+32s,+lasx < %s | FileCheck %s3; RUN: llc --mtriple=loongarch64 --mattr=+lasx < %s | FileCheck %s4 5declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.caf.s(<8 x float>, <8 x float>)6 7define <8 x i32> @lasx_xvfcmp_caf_s(<8 x float> %va, <8 x float> %vb) nounwind {8; CHECK-LABEL: lasx_xvfcmp_caf_s:9; CHECK:       # %bb.0: # %entry10; CHECK-NEXT:    xvfcmp.caf.s $xr0, $xr0, $xr111; CHECK-NEXT:    ret12entry:13  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.caf.s(<8 x float> %va, <8 x float> %vb)14  ret <8 x i32> %res15}16 17declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.caf.d(<4 x double>, <4 x double>)18 19define <4 x i64> @lasx_xvfcmp_caf_d(<4 x double> %va, <4 x double> %vb) nounwind {20; CHECK-LABEL: lasx_xvfcmp_caf_d:21; CHECK:       # %bb.0: # %entry22; CHECK-NEXT:    xvfcmp.caf.d $xr0, $xr0, $xr123; CHECK-NEXT:    ret24entry:25  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.caf.d(<4 x double> %va, <4 x double> %vb)26  ret <4 x i64> %res27}28 29declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.cun.s(<8 x float>, <8 x float>)30 31define <8 x i32> @lasx_xvfcmp_cun_s(<8 x float> %va, <8 x float> %vb) nounwind {32; CHECK-LABEL: lasx_xvfcmp_cun_s:33; CHECK:       # %bb.0: # %entry34; CHECK-NEXT:    xvfcmp.cun.s $xr0, $xr0, $xr135; CHECK-NEXT:    ret36entry:37  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.cun.s(<8 x float> %va, <8 x float> %vb)38  ret <8 x i32> %res39}40 41declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.cun.d(<4 x double>, <4 x double>)42 43define <4 x i64> @lasx_xvfcmp_cun_d(<4 x double> %va, <4 x double> %vb) nounwind {44; CHECK-LABEL: lasx_xvfcmp_cun_d:45; CHECK:       # %bb.0: # %entry46; CHECK-NEXT:    xvfcmp.cun.d $xr0, $xr0, $xr147; CHECK-NEXT:    ret48entry:49  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.cun.d(<4 x double> %va, <4 x double> %vb)50  ret <4 x i64> %res51}52 53declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.ceq.s(<8 x float>, <8 x float>)54 55define <8 x i32> @lasx_xvfcmp_ceq_s(<8 x float> %va, <8 x float> %vb) nounwind {56; CHECK-LABEL: lasx_xvfcmp_ceq_s:57; CHECK:       # %bb.0: # %entry58; CHECK-NEXT:    xvfcmp.ceq.s $xr0, $xr0, $xr159; CHECK-NEXT:    ret60entry:61  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.ceq.s(<8 x float> %va, <8 x float> %vb)62  ret <8 x i32> %res63}64 65declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.ceq.d(<4 x double>, <4 x double>)66 67define <4 x i64> @lasx_xvfcmp_ceq_d(<4 x double> %va, <4 x double> %vb) nounwind {68; CHECK-LABEL: lasx_xvfcmp_ceq_d:69; CHECK:       # %bb.0: # %entry70; CHECK-NEXT:    xvfcmp.ceq.d $xr0, $xr0, $xr171; CHECK-NEXT:    ret72entry:73  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.ceq.d(<4 x double> %va, <4 x double> %vb)74  ret <4 x i64> %res75}76 77declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.cueq.s(<8 x float>, <8 x float>)78 79define <8 x i32> @lasx_xvfcmp_cueq_s(<8 x float> %va, <8 x float> %vb) nounwind {80; CHECK-LABEL: lasx_xvfcmp_cueq_s:81; CHECK:       # %bb.0: # %entry82; CHECK-NEXT:    xvfcmp.cueq.s $xr0, $xr0, $xr183; CHECK-NEXT:    ret84entry:85  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.cueq.s(<8 x float> %va, <8 x float> %vb)86  ret <8 x i32> %res87}88 89declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.cueq.d(<4 x double>, <4 x double>)90 91define <4 x i64> @lasx_xvfcmp_cueq_d(<4 x double> %va, <4 x double> %vb) nounwind {92; CHECK-LABEL: lasx_xvfcmp_cueq_d:93; CHECK:       # %bb.0: # %entry94; CHECK-NEXT:    xvfcmp.cueq.d $xr0, $xr0, $xr195; CHECK-NEXT:    ret96entry:97  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.cueq.d(<4 x double> %va, <4 x double> %vb)98  ret <4 x i64> %res99}100 101declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.clt.s(<8 x float>, <8 x float>)102 103define <8 x i32> @lasx_xvfcmp_clt_s(<8 x float> %va, <8 x float> %vb) nounwind {104; CHECK-LABEL: lasx_xvfcmp_clt_s:105; CHECK:       # %bb.0: # %entry106; CHECK-NEXT:    xvfcmp.clt.s $xr0, $xr0, $xr1107; CHECK-NEXT:    ret108entry:109  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.clt.s(<8 x float> %va, <8 x float> %vb)110  ret <8 x i32> %res111}112 113declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.clt.d(<4 x double>, <4 x double>)114 115define <4 x i64> @lasx_xvfcmp_clt_d(<4 x double> %va, <4 x double> %vb) nounwind {116; CHECK-LABEL: lasx_xvfcmp_clt_d:117; CHECK:       # %bb.0: # %entry118; CHECK-NEXT:    xvfcmp.clt.d $xr0, $xr0, $xr1119; CHECK-NEXT:    ret120entry:121  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.clt.d(<4 x double> %va, <4 x double> %vb)122  ret <4 x i64> %res123}124 125declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.cult.s(<8 x float>, <8 x float>)126 127define <8 x i32> @lasx_xvfcmp_cult_s(<8 x float> %va, <8 x float> %vb) nounwind {128; CHECK-LABEL: lasx_xvfcmp_cult_s:129; CHECK:       # %bb.0: # %entry130; CHECK-NEXT:    xvfcmp.cult.s $xr0, $xr0, $xr1131; CHECK-NEXT:    ret132entry:133  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.cult.s(<8 x float> %va, <8 x float> %vb)134  ret <8 x i32> %res135}136 137declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.cult.d(<4 x double>, <4 x double>)138 139define <4 x i64> @lasx_xvfcmp_cult_d(<4 x double> %va, <4 x double> %vb) nounwind {140; CHECK-LABEL: lasx_xvfcmp_cult_d:141; CHECK:       # %bb.0: # %entry142; CHECK-NEXT:    xvfcmp.cult.d $xr0, $xr0, $xr1143; CHECK-NEXT:    ret144entry:145  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.cult.d(<4 x double> %va, <4 x double> %vb)146  ret <4 x i64> %res147}148 149declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.cle.s(<8 x float>, <8 x float>)150 151define <8 x i32> @lasx_xvfcmp_cle_s(<8 x float> %va, <8 x float> %vb) nounwind {152; CHECK-LABEL: lasx_xvfcmp_cle_s:153; CHECK:       # %bb.0: # %entry154; CHECK-NEXT:    xvfcmp.cle.s $xr0, $xr0, $xr1155; CHECK-NEXT:    ret156entry:157  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.cle.s(<8 x float> %va, <8 x float> %vb)158  ret <8 x i32> %res159}160 161declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.cle.d(<4 x double>, <4 x double>)162 163define <4 x i64> @lasx_xvfcmp_cle_d(<4 x double> %va, <4 x double> %vb) nounwind {164; CHECK-LABEL: lasx_xvfcmp_cle_d:165; CHECK:       # %bb.0: # %entry166; CHECK-NEXT:    xvfcmp.cle.d $xr0, $xr0, $xr1167; CHECK-NEXT:    ret168entry:169  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.cle.d(<4 x double> %va, <4 x double> %vb)170  ret <4 x i64> %res171}172 173declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.cule.s(<8 x float>, <8 x float>)174 175define <8 x i32> @lasx_xvfcmp_cule_s(<8 x float> %va, <8 x float> %vb) nounwind {176; CHECK-LABEL: lasx_xvfcmp_cule_s:177; CHECK:       # %bb.0: # %entry178; CHECK-NEXT:    xvfcmp.cule.s $xr0, $xr0, $xr1179; CHECK-NEXT:    ret180entry:181  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.cule.s(<8 x float> %va, <8 x float> %vb)182  ret <8 x i32> %res183}184 185declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.cule.d(<4 x double>, <4 x double>)186 187define <4 x i64> @lasx_xvfcmp_cule_d(<4 x double> %va, <4 x double> %vb) nounwind {188; CHECK-LABEL: lasx_xvfcmp_cule_d:189; CHECK:       # %bb.0: # %entry190; CHECK-NEXT:    xvfcmp.cule.d $xr0, $xr0, $xr1191; CHECK-NEXT:    ret192entry:193  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.cule.d(<4 x double> %va, <4 x double> %vb)194  ret <4 x i64> %res195}196 197declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.cne.s(<8 x float>, <8 x float>)198 199define <8 x i32> @lasx_xvfcmp_cne_s(<8 x float> %va, <8 x float> %vb) nounwind {200; CHECK-LABEL: lasx_xvfcmp_cne_s:201; CHECK:       # %bb.0: # %entry202; CHECK-NEXT:    xvfcmp.cne.s $xr0, $xr0, $xr1203; CHECK-NEXT:    ret204entry:205  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.cne.s(<8 x float> %va, <8 x float> %vb)206  ret <8 x i32> %res207}208 209declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.cne.d(<4 x double>, <4 x double>)210 211define <4 x i64> @lasx_xvfcmp_cne_d(<4 x double> %va, <4 x double> %vb) nounwind {212; CHECK-LABEL: lasx_xvfcmp_cne_d:213; CHECK:       # %bb.0: # %entry214; CHECK-NEXT:    xvfcmp.cne.d $xr0, $xr0, $xr1215; CHECK-NEXT:    ret216entry:217  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.cne.d(<4 x double> %va, <4 x double> %vb)218  ret <4 x i64> %res219}220 221declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.cor.s(<8 x float>, <8 x float>)222 223define <8 x i32> @lasx_xvfcmp_cor_s(<8 x float> %va, <8 x float> %vb) nounwind {224; CHECK-LABEL: lasx_xvfcmp_cor_s:225; CHECK:       # %bb.0: # %entry226; CHECK-NEXT:    xvfcmp.cor.s $xr0, $xr0, $xr1227; CHECK-NEXT:    ret228entry:229  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.cor.s(<8 x float> %va, <8 x float> %vb)230  ret <8 x i32> %res231}232 233declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.cor.d(<4 x double>, <4 x double>)234 235define <4 x i64> @lasx_xvfcmp_cor_d(<4 x double> %va, <4 x double> %vb) nounwind {236; CHECK-LABEL: lasx_xvfcmp_cor_d:237; CHECK:       # %bb.0: # %entry238; CHECK-NEXT:    xvfcmp.cor.d $xr0, $xr0, $xr1239; CHECK-NEXT:    ret240entry:241  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.cor.d(<4 x double> %va, <4 x double> %vb)242  ret <4 x i64> %res243}244 245declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.cune.s(<8 x float>, <8 x float>)246 247define <8 x i32> @lasx_xvfcmp_cune_s(<8 x float> %va, <8 x float> %vb) nounwind {248; CHECK-LABEL: lasx_xvfcmp_cune_s:249; CHECK:       # %bb.0: # %entry250; CHECK-NEXT:    xvfcmp.cune.s $xr0, $xr0, $xr1251; CHECK-NEXT:    ret252entry:253  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.cune.s(<8 x float> %va, <8 x float> %vb)254  ret <8 x i32> %res255}256 257declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.cune.d(<4 x double>, <4 x double>)258 259define <4 x i64> @lasx_xvfcmp_cune_d(<4 x double> %va, <4 x double> %vb) nounwind {260; CHECK-LABEL: lasx_xvfcmp_cune_d:261; CHECK:       # %bb.0: # %entry262; CHECK-NEXT:    xvfcmp.cune.d $xr0, $xr0, $xr1263; CHECK-NEXT:    ret264entry:265  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.cune.d(<4 x double> %va, <4 x double> %vb)266  ret <4 x i64> %res267}268 269declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.saf.s(<8 x float>, <8 x float>)270 271define <8 x i32> @lasx_xvfcmp_saf_s(<8 x float> %va, <8 x float> %vb) nounwind {272; CHECK-LABEL: lasx_xvfcmp_saf_s:273; CHECK:       # %bb.0: # %entry274; CHECK-NEXT:    xvfcmp.saf.s $xr0, $xr0, $xr1275; CHECK-NEXT:    ret276entry:277  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.saf.s(<8 x float> %va, <8 x float> %vb)278  ret <8 x i32> %res279}280 281declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.saf.d(<4 x double>, <4 x double>)282 283define <4 x i64> @lasx_xvfcmp_saf_d(<4 x double> %va, <4 x double> %vb) nounwind {284; CHECK-LABEL: lasx_xvfcmp_saf_d:285; CHECK:       # %bb.0: # %entry286; CHECK-NEXT:    xvfcmp.saf.d $xr0, $xr0, $xr1287; CHECK-NEXT:    ret288entry:289  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.saf.d(<4 x double> %va, <4 x double> %vb)290  ret <4 x i64> %res291}292 293declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.sun.s(<8 x float>, <8 x float>)294 295define <8 x i32> @lasx_xvfcmp_sun_s(<8 x float> %va, <8 x float> %vb) nounwind {296; CHECK-LABEL: lasx_xvfcmp_sun_s:297; CHECK:       # %bb.0: # %entry298; CHECK-NEXT:    xvfcmp.sun.s $xr0, $xr0, $xr1299; CHECK-NEXT:    ret300entry:301  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.sun.s(<8 x float> %va, <8 x float> %vb)302  ret <8 x i32> %res303}304 305declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.sun.d(<4 x double>, <4 x double>)306 307define <4 x i64> @lasx_xvfcmp_sun_d(<4 x double> %va, <4 x double> %vb) nounwind {308; CHECK-LABEL: lasx_xvfcmp_sun_d:309; CHECK:       # %bb.0: # %entry310; CHECK-NEXT:    xvfcmp.sun.d $xr0, $xr0, $xr1311; CHECK-NEXT:    ret312entry:313  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.sun.d(<4 x double> %va, <4 x double> %vb)314  ret <4 x i64> %res315}316 317declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.seq.s(<8 x float>, <8 x float>)318 319define <8 x i32> @lasx_xvfcmp_seq_s(<8 x float> %va, <8 x float> %vb) nounwind {320; CHECK-LABEL: lasx_xvfcmp_seq_s:321; CHECK:       # %bb.0: # %entry322; CHECK-NEXT:    xvfcmp.seq.s $xr0, $xr0, $xr1323; CHECK-NEXT:    ret324entry:325  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.seq.s(<8 x float> %va, <8 x float> %vb)326  ret <8 x i32> %res327}328 329declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.seq.d(<4 x double>, <4 x double>)330 331define <4 x i64> @lasx_xvfcmp_seq_d(<4 x double> %va, <4 x double> %vb) nounwind {332; CHECK-LABEL: lasx_xvfcmp_seq_d:333; CHECK:       # %bb.0: # %entry334; CHECK-NEXT:    xvfcmp.seq.d $xr0, $xr0, $xr1335; CHECK-NEXT:    ret336entry:337  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.seq.d(<4 x double> %va, <4 x double> %vb)338  ret <4 x i64> %res339}340 341declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.sueq.s(<8 x float>, <8 x float>)342 343define <8 x i32> @lasx_xvfcmp_sueq_s(<8 x float> %va, <8 x float> %vb) nounwind {344; CHECK-LABEL: lasx_xvfcmp_sueq_s:345; CHECK:       # %bb.0: # %entry346; CHECK-NEXT:    xvfcmp.sueq.s $xr0, $xr0, $xr1347; CHECK-NEXT:    ret348entry:349  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.sueq.s(<8 x float> %va, <8 x float> %vb)350  ret <8 x i32> %res351}352 353declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.sueq.d(<4 x double>, <4 x double>)354 355define <4 x i64> @lasx_xvfcmp_sueq_d(<4 x double> %va, <4 x double> %vb) nounwind {356; CHECK-LABEL: lasx_xvfcmp_sueq_d:357; CHECK:       # %bb.0: # %entry358; CHECK-NEXT:    xvfcmp.sueq.d $xr0, $xr0, $xr1359; CHECK-NEXT:    ret360entry:361  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.sueq.d(<4 x double> %va, <4 x double> %vb)362  ret <4 x i64> %res363}364 365declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.slt.s(<8 x float>, <8 x float>)366 367define <8 x i32> @lasx_xvfcmp_slt_s(<8 x float> %va, <8 x float> %vb) nounwind {368; CHECK-LABEL: lasx_xvfcmp_slt_s:369; CHECK:       # %bb.0: # %entry370; CHECK-NEXT:    xvfcmp.slt.s $xr0, $xr0, $xr1371; CHECK-NEXT:    ret372entry:373  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.slt.s(<8 x float> %va, <8 x float> %vb)374  ret <8 x i32> %res375}376 377declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.slt.d(<4 x double>, <4 x double>)378 379define <4 x i64> @lasx_xvfcmp_slt_d(<4 x double> %va, <4 x double> %vb) nounwind {380; CHECK-LABEL: lasx_xvfcmp_slt_d:381; CHECK:       # %bb.0: # %entry382; CHECK-NEXT:    xvfcmp.slt.d $xr0, $xr0, $xr1383; CHECK-NEXT:    ret384entry:385  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.slt.d(<4 x double> %va, <4 x double> %vb)386  ret <4 x i64> %res387}388 389declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.sult.s(<8 x float>, <8 x float>)390 391define <8 x i32> @lasx_xvfcmp_sult_s(<8 x float> %va, <8 x float> %vb) nounwind {392; CHECK-LABEL: lasx_xvfcmp_sult_s:393; CHECK:       # %bb.0: # %entry394; CHECK-NEXT:    xvfcmp.sult.s $xr0, $xr0, $xr1395; CHECK-NEXT:    ret396entry:397  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.sult.s(<8 x float> %va, <8 x float> %vb)398  ret <8 x i32> %res399}400 401declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.sult.d(<4 x double>, <4 x double>)402 403define <4 x i64> @lasx_xvfcmp_sult_d(<4 x double> %va, <4 x double> %vb) nounwind {404; CHECK-LABEL: lasx_xvfcmp_sult_d:405; CHECK:       # %bb.0: # %entry406; CHECK-NEXT:    xvfcmp.sult.d $xr0, $xr0, $xr1407; CHECK-NEXT:    ret408entry:409  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.sult.d(<4 x double> %va, <4 x double> %vb)410  ret <4 x i64> %res411}412 413declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.sle.s(<8 x float>, <8 x float>)414 415define <8 x i32> @lasx_xvfcmp_sle_s(<8 x float> %va, <8 x float> %vb) nounwind {416; CHECK-LABEL: lasx_xvfcmp_sle_s:417; CHECK:       # %bb.0: # %entry418; CHECK-NEXT:    xvfcmp.sle.s $xr0, $xr0, $xr1419; CHECK-NEXT:    ret420entry:421  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.sle.s(<8 x float> %va, <8 x float> %vb)422  ret <8 x i32> %res423}424 425declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.sle.d(<4 x double>, <4 x double>)426 427define <4 x i64> @lasx_xvfcmp_sle_d(<4 x double> %va, <4 x double> %vb) nounwind {428; CHECK-LABEL: lasx_xvfcmp_sle_d:429; CHECK:       # %bb.0: # %entry430; CHECK-NEXT:    xvfcmp.sle.d $xr0, $xr0, $xr1431; CHECK-NEXT:    ret432entry:433  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.sle.d(<4 x double> %va, <4 x double> %vb)434  ret <4 x i64> %res435}436 437declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.sule.s(<8 x float>, <8 x float>)438 439define <8 x i32> @lasx_xvfcmp_sule_s(<8 x float> %va, <8 x float> %vb) nounwind {440; CHECK-LABEL: lasx_xvfcmp_sule_s:441; CHECK:       # %bb.0: # %entry442; CHECK-NEXT:    xvfcmp.sule.s $xr0, $xr0, $xr1443; CHECK-NEXT:    ret444entry:445  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.sule.s(<8 x float> %va, <8 x float> %vb)446  ret <8 x i32> %res447}448 449declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.sule.d(<4 x double>, <4 x double>)450 451define <4 x i64> @lasx_xvfcmp_sule_d(<4 x double> %va, <4 x double> %vb) nounwind {452; CHECK-LABEL: lasx_xvfcmp_sule_d:453; CHECK:       # %bb.0: # %entry454; CHECK-NEXT:    xvfcmp.sule.d $xr0, $xr0, $xr1455; CHECK-NEXT:    ret456entry:457  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.sule.d(<4 x double> %va, <4 x double> %vb)458  ret <4 x i64> %res459}460 461declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.sne.s(<8 x float>, <8 x float>)462 463define <8 x i32> @lasx_xvfcmp_sne_s(<8 x float> %va, <8 x float> %vb) nounwind {464; CHECK-LABEL: lasx_xvfcmp_sne_s:465; CHECK:       # %bb.0: # %entry466; CHECK-NEXT:    xvfcmp.sne.s $xr0, $xr0, $xr1467; CHECK-NEXT:    ret468entry:469  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.sne.s(<8 x float> %va, <8 x float> %vb)470  ret <8 x i32> %res471}472 473declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.sne.d(<4 x double>, <4 x double>)474 475define <4 x i64> @lasx_xvfcmp_sne_d(<4 x double> %va, <4 x double> %vb) nounwind {476; CHECK-LABEL: lasx_xvfcmp_sne_d:477; CHECK:       # %bb.0: # %entry478; CHECK-NEXT:    xvfcmp.sne.d $xr0, $xr0, $xr1479; CHECK-NEXT:    ret480entry:481  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.sne.d(<4 x double> %va, <4 x double> %vb)482  ret <4 x i64> %res483}484 485declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.sor.s(<8 x float>, <8 x float>)486 487define <8 x i32> @lasx_xvfcmp_sor_s(<8 x float> %va, <8 x float> %vb) nounwind {488; CHECK-LABEL: lasx_xvfcmp_sor_s:489; CHECK:       # %bb.0: # %entry490; CHECK-NEXT:    xvfcmp.sor.s $xr0, $xr0, $xr1491; CHECK-NEXT:    ret492entry:493  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.sor.s(<8 x float> %va, <8 x float> %vb)494  ret <8 x i32> %res495}496 497declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.sor.d(<4 x double>, <4 x double>)498 499define <4 x i64> @lasx_xvfcmp_sor_d(<4 x double> %va, <4 x double> %vb) nounwind {500; CHECK-LABEL: lasx_xvfcmp_sor_d:501; CHECK:       # %bb.0: # %entry502; CHECK-NEXT:    xvfcmp.sor.d $xr0, $xr0, $xr1503; CHECK-NEXT:    ret504entry:505  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.sor.d(<4 x double> %va, <4 x double> %vb)506  ret <4 x i64> %res507}508 509declare <8 x i32> @llvm.loongarch.lasx.xvfcmp.sune.s(<8 x float>, <8 x float>)510 511define <8 x i32> @lasx_xvfcmp_sune_s(<8 x float> %va, <8 x float> %vb) nounwind {512; CHECK-LABEL: lasx_xvfcmp_sune_s:513; CHECK:       # %bb.0: # %entry514; CHECK-NEXT:    xvfcmp.sune.s $xr0, $xr0, $xr1515; CHECK-NEXT:    ret516entry:517  %res = call <8 x i32> @llvm.loongarch.lasx.xvfcmp.sune.s(<8 x float> %va, <8 x float> %vb)518  ret <8 x i32> %res519}520 521declare <4 x i64> @llvm.loongarch.lasx.xvfcmp.sune.d(<4 x double>, <4 x double>)522 523define <4 x i64> @lasx_xvfcmp_sune_d(<4 x double> %va, <4 x double> %vb) nounwind {524; CHECK-LABEL: lasx_xvfcmp_sune_d:525; CHECK:       # %bb.0: # %entry526; CHECK-NEXT:    xvfcmp.sune.d $xr0, $xr0, $xr1527; CHECK-NEXT:    ret528entry:529  %res = call <4 x i64> @llvm.loongarch.lasx.xvfcmp.sune.d(<4 x double> %va, <4 x double> %vb)530  ret <4 x i64> %res531}532