<html>
    <head>
      <base href="https://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - [x86, avx512] crash lowering masked load intrinsic"
   href="https://llvm.org/bugs/show_bug.cgi?id=26264">26264</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[x86, avx512] crash lowering masked load intrinsic
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Backend: X86
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>spatel+llvm@rotateright.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>This is a test that already exists in llvm/test/CodeGen/X86/masked_memop.ll,
but it isn't tested with the following target attribute:

define <32 x i64> @test_load_32i64(<32 x i64>* %ptrs, <32 x i1> %mask, <32 x
i64> %src0)  {
  %res = call <32 x i64> @llvm.masked.load.v32i64(<32 x i64>* %ptrs, i32 4, <32
x i1> %mask, <32 x i64> %src0)
  ret <32 x i64> %res
}
declare <32 x i64> @llvm.masked.load.v32i64(<32 x i64>* %ptrs, i32, <32 x i1>
%mask, <32 x i64> %src0)


$ ./llc mloadcrash.ll -o - -mattr=avx512bw
    .section    __TEXT,__text,regular,pure_instructions
    .macosx_version_min 10, 11
Assertion failed: ((NumElts == 8 || NumElts == 16) && "Unexected vector
type."), function LowerTruncateVecI1, file
/Users/spatel/myllvm/llvm/lib/Target/X86/X86ISelLowering.cpp, line 13588.
0  llc                      0x0000000107a30f5e
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 46
1  llc                      0x0000000107a313a9
PrintStackTraceSignalHandler(void*) + 25
2  llc                      0x0000000107a2db49 llvm::sys::RunSignalHandlers() +
425
3  llc                      0x0000000107a31709 SignalHandler(int) + 345
4  libsystem_platform.dylib 0x00007fff9d455eaa _sigtramp + 26
5  llc                      0x000000010865b507 ErrorCategory + 86135
6  llc                      0x0000000107a313cb raise + 27
7  llc                      0x0000000107a31482 abort + 18
8  llc                      0x0000000107a31461 __assert_rtn + 129
9  llc                      0x0000000106597de8
LowerTruncateVecI1(llvm::SDValue, llvm::SelectionDAG&, llvm::X86Subtarget
const*) + 2312
10 llc                      0x0000000106594dd3
llvm::X86TargetLowering::LowerTRUNCATE(llvm::SDValue, llvm::SelectionDAG&)
const + 1059
11 llc                      0x00000001065b3390
llvm::X86TargetLowering::LowerOperation(llvm::SDValue, llvm::SelectionDAG&)
const + 1520
12 llc                      0x000000010770a0fe (anonymous
namespace)::VectorLegalizer::LegalizeOp(llvm::SDValue) + 4174
13 llc                      0x0000000107708ed9 (anonymous
namespace)::VectorLegalizer::Run() + 1513
14 llc                      0x0000000107708872
llvm::SelectionDAG::LegalizeVectors() + 66
15 llc                      0x0000000107885d57
llvm::SelectionDAGISel::CodeGenAndEmitDAG() + 7431
16 llc                      0x000000010788403f
llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::Instruction
const>, llvm::ilist_iterator<llvm::Instruction const>, bool&) + 255
17 llc                      0x0000000107883d28
llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 5256
18 llc                      0x0000000107881398
llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 1624
19 llc                      0x000000010652fc5b (anonymous
namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 59
20 llc                      0x0000000106cdcb1e
llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 110
21 llc                      0x0000000107271b6d
llvm::FPPassManager::runOnFunction(llvm::Function&) + 413
22 llc                      0x0000000107271ea5
llvm::FPPassManager::runOnModule(llvm::Module&) + 117
23 llc                      0x0000000107272bfa (anonymous
namespace)::MPPassManager::runOnModule(llvm::Module&) + 2010
24 llc                      0x000000010727218b
llvm::legacy::PassManagerImpl::run(llvm::Module&) + 347
25 llc                      0x0000000107273841
llvm::legacy::PassManager::run(llvm::Module&) + 33
26 llc                      0x00000001055b8d4c compileModule(char**,
llvm::LLVMContext&) + 19788
27 llc                      0x00000001055b3f96 main + 230
28 libdyld.dylib            0x00007fff8a4fa5ad start + 1
29 libdyld.dylib            0x0000000000000005 start + 1974491737
Stack dump:
0.    Program arguments: ./llc mloadcrash.ll -o - -mattr=avx512bw 
1.    Running pass 'Function Pass Manager' on module 'mloadcrash.ll'.
2.    Running pass 'X86 DAG->DAG Instruction Selection' on function
'@test_load_32i64'
Illegal instruction: 4</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>