brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · cf6edbc Raw
68 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64 -mcpu=skx | FileCheck %s --check-prefixes=SKX3 4;; Test no crash for AVX512 targets without prefer-vector-width=512.5 6define <16 x i32> @test_v16f32_oeq_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {7; SKX-LABEL: test_v16f32_oeq_q:8; SKX:       # %bb.0:9; SKX-NEXT:    vcmpeqps %ymm7, %ymm5, %k110; SKX-NEXT:    vcmpeqps %ymm6, %ymm4, %k211; SKX-NEXT:    vpblendmd %ymm0, %ymm2, %ymm0 {%k2}12; SKX-NEXT:    vpblendmd %ymm1, %ymm3, %ymm1 {%k1}13; SKX-NEXT:    retq14  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(15                                               <16 x float> %f1, <16 x float> %f2, metadata !"oeq",16                                               metadata !"fpexcept.strict") #017  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b18  ret <16 x i32> %res19}20 21define <8 x i32> @test_v8f64_oeq_q(<8 x i32> %a, <8 x i32> %b, <8 x double> %f1, <8 x double> %f2) #0 {22; SKX-LABEL: test_v8f64_oeq_q:23; SKX:       # %bb.0:24; SKX-NEXT:    vcmpeqpd %ymm4, %ymm2, %k025; SKX-NEXT:    vcmpeqpd %ymm5, %ymm3, %k126; SKX-NEXT:    kshiftlb $4, %k1, %k127; SKX-NEXT:    korb %k1, %k0, %k128; SKX-NEXT:    vpblendmd %ymm0, %ymm1, %ymm0 {%k1}29; SKX-NEXT:    retq30  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(31                                               <8 x double> %f1, <8 x double> %f2, metadata !"oeq",32                                               metadata !"fpexcept.strict") #033  %res = select <8 x i1> %cond, <8 x i32> %a, <8 x i32> %b34  ret <8 x i32> %res35}36 37define <16 x i32> @test_v16f64_ogt(<16 x i32> %a, <16 x i32> %b, <16 x double> %f1, <16 x double> %f2) #0 {38; SKX-LABEL: test_v16f64_ogt:39; SKX:       # %bb.0:40; SKX-NEXT:    pushq %rbp41; SKX-NEXT:    movq %rsp, %rbp42; SKX-NEXT:    andq $-32, %rsp43; SKX-NEXT:    subq $32, %rsp44; SKX-NEXT:    vcmpgtpd 80(%rbp), %ymm6, %k045; SKX-NEXT:    vcmpgtpd 112(%rbp), %ymm7, %k146; SKX-NEXT:    kshiftlb $4, %k1, %k147; SKX-NEXT:    korb %k1, %k0, %k148; SKX-NEXT:    vcmpgtpd 16(%rbp), %ymm4, %k049; SKX-NEXT:    vcmpgtpd 48(%rbp), %ymm5, %k250; SKX-NEXT:    kshiftlb $4, %k2, %k251; SKX-NEXT:    korb %k2, %k0, %k252; SKX-NEXT:    vpblendmd %ymm0, %ymm2, %ymm0 {%k2}53; SKX-NEXT:    vpblendmd %ymm1, %ymm3, %ymm1 {%k1}54; SKX-NEXT:    movq %rbp, %rsp55; SKX-NEXT:    popq %rbp56; SKX-NEXT:    retq57  %cond = tail call <16 x i1> @llvm.experimental.constrained.fcmps.v16f64(58    <16 x double> %f1, <16 x double> %f2, metadata !"ogt", metadata !"fpexcept.maytrap")59  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b60  ret <16 x i32> %res61}62 63declare <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(<16 x float>, <16 x float>, metadata, metadata)64declare <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(<8 x double>, <8 x double>, metadata, metadata)65declare <16 x i1> @llvm.experimental.constrained.fcmps.v16f64(<16 x double>, <16 x double>, metadata, metadata)66 67attributes #0 = { nounwind strictfp "min-legal-vector-width"="0" }68