[llvm-bugs] [Bug 34631] New: [X86] Using _mm512_maskz_set1_epi64 on a 32-bit build causes cannot select intrinsic error

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Sep 15 13:21:00 PDT 2017


https://bugs.llvm.org/show_bug.cgi?id=34631

            Bug ID: 34631
           Summary: [X86] Using _mm512_maskz_set1_epi64  on a 32-bit build
                    causes cannot select intrinsic error
           Product: clang
           Version: trunk
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Headers
          Assignee: unassignedclangbugs at nondot.org
          Reporter: craig.topper at gmail.com
                CC: llvm-bugs at lists.llvm.org

This intrinsic is currently implemented in clang by selecting between two
different builtins, __builtin_ia32_pbroadcastq512_gpr_mask(64-bit) and
__builtin_ia32_pbroadcastq512_mem_mask(32-bit). 

But it seems __builtin_ia32_pbroadcastq512_mem_mask was never implemented in
the X86 backend. So using it just causes an isel error. And worse, on a debug
build it hits an llvm_unreachable trying to expand a 64-bit operand on an
intrinsic.


Test case

#include <x86intrin.h>

__m512i test_mm512_maskz_set1_epi64 (__mmask8 __M, long long __A)
{
    //CHECK-LABEL: @test_mm512_maskz_set1_epi64
    //CHECK: @llvm.x86.avx512.mask.pbroadcast.q.gpr.512
  return _mm512_maskz_set1_epi64 (__M, __A);
}

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170915/e6acc1c1/attachment-0001.html>


More information about the llvm-bugs mailing list