[PATCH] D87061: Handle masked loads and stores in MemoryLocation/Dependence
Florian Hahn via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 9 12:29:11 PDT 2020
fhahn added a comment.
I think this introduces the following crash when running `opt -gvn` on the IR below
Assertion failed: (isa<X>(Val) && "cast<Ty>() argument of incompatible type!"), function cast, file /llvm-project/llvm/include/llvm/Support/Casting.h, line 269.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0. Program arguments: bin/opt -gvn bugpoint-reduced-simplified.ll
1. Running pass 'Function Pass Manager' on module 'bugpoint-reduced-simplified.ll'.
2. Running pass 'Global Value Numbering' on function '@test'
0 opt 0x000000010d35b688 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 40
1 opt 0x000000010d35a438 llvm::sys::RunSignalHandlers() + 248
2 opt 0x000000010d35bc76 SignalHandler(int) + 262
3 libsystem_platform.dylib 0x00007fff6d8fd5fd _sigtramp + 29
4 libsystem_platform.dylib 000000000000000000 _sigtramp + 18446603338678020640
5 libsystem_c.dylib 0x00007fff6d7d3808 abort + 120
6 libsystem_c.dylib 0x00007fff6d7d2ac6 err + 0
7 opt 0x000000010e6da773 llvm::GVN::ValueTable::lookupOrAddCall(llvm::CallInst*) (.cold.7) + 35
8 opt 0x000000010d031435 llvm::GVN::ValueTable::lookupOrAddCall(llvm::CallInst*) + 3381
9 opt 0x000000010d02f3c0 llvm::GVN::ValueTable::lookupOrAdd(llvm::Value*) + 896
10 opt 0x000000010d03aeb7 llvm::GVN::processInstruction(llvm::Instruction*) + 695
11 opt 0x000000010d03c044 llvm::GVN::processBlock(llvm::BasicBlock*) + 564
12 opt 0x000000010d03b750 llvm::GVN::iterateOnFunction(llvm::Function&) + 112
13 opt 0x000000010d0329ab llvm::GVN::runImpl(llvm::Function&, llvm::AssumptionC
@file_mask = external global [8 x i64], align 32
define dso_local fastcc void @test() unnamed_addr #0 {
entry:
%wide.masked.load.1.i = tail call <4 x i64> @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* nonnull bitcast (i64* getelementptr inbounds ([8 x i64], [8 x i64]* @file_mask, i64 0, i64 7) to <4 x i64>*), i32 8, <4 x i1> <i1 true, i1 false, i1 false, i1 false>, <4 x i64> undef) #2
%.pre392.i = load i64, i64* getelementptr inbounds ([8 x i64], [8 x i64]* @file_mask, i64 0, i64 7), align 8
%or156.4.i = or i64 %.pre392.i, undef
%wide.masked.load614.1.i = tail call <4 x i64> @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* nonnull bitcast (i64* getelementptr inbounds ([8 x i64], [8 x i64]* @file_mask, i64 0, i64 7) to <4 x i64>*), i32 8, <4 x i1> <i1 true, i1 false, i1 false, i1 false>, <4 x i64> undef) #2
unreachable
}
; Function Attrs: argmemonly nounwind readonly willreturn
declare <4 x i64> @llvm.masked.load.v4i64.p0v4i64(<4 x i64>*, i32 immarg, <4 x i1>, <4 x i64>)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D87061/new/
https://reviews.llvm.org/D87061
More information about the llvm-commits
mailing list