SuccessChanges

Summary

  1. [X86] Remove extra getOperand(0) call from recently introduced store(extract_element(vtrunc)) to truncated store combine. (details)
  2. Remove global registration from the test dialect in MLIR (NFC) (details)
  3. [Modules] Improve error message when cannot find parent module for submodule definition. (details)
  4. [X86] Add an isel pattern for (i8 (trunc (i16 (bitconvert (v16i1 X))))) to avoid an extra EXTRACT_SUBREG (details)
Commit b8ec8f57764e37e7eebed436332b87b46084eb11 by craig.topper
[X86] Remove extra getOperand(0) call from recently introduced store(extract_element(vtrunc)) to truncated store combine.

The IsExtractedElement already called getOperand(0) so Extract
here is the source vector. We shouldn't call getOperand(0). This
worked for the original test cases because the result was a
bitcast so the getOperand(0) accidently peeked through the bitcast
which is what we wanted.

In the failing case here, the operand turns out to be undef so
the getOperand(0) asserts because undef has no operands.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25184

Differential Revision: https://reviews.llvm.org/D86428
The file was addedllvm/test/CodeGen/X86/oss-fuzz-25184.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 1e13372bc808eb72ca4b96285b9ba9a987a39965 by joker.eph
Remove global registration from the test dialect in MLIR (NFC)
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
Commit 8839e278ffcadc62b333423de07756488cae980f by vsapsai
[Modules] Improve error message when cannot find parent module for submodule definition.

Before the change the diagnostic for

    module unknown.submodule {}

was "error: expected module name" which is incorrect and misleading
because both "unknown" and "submodule" are valid module names.

We already have a better error message when a parent module is a
submodule itself and is missing. Make the error for a missing top-level
module more like the one for a submodule.

rdar://problem/64424407

Reviewed By: bruno

Differential Revision: https://reviews.llvm.org/D84458
The file was modifiedclang/lib/Lex/ModuleMap.cpp
The file was modifiedclang/test/Modules/diagnostics.modulemap
The file was modifiedclang/include/clang/Basic/DiagnosticLexKinds.td
Commit 1d1515a9e28c7f32af548584ebed66cd8caae84f by craig.topper
[X86] Add an isel pattern for (i8 (trunc (i16 (bitconvert (v16i1 X))))) to avoid an extra EXTRACT_SUBREG

Since we can only copy to GR32 we had to EXTRACT from GR32, but
we would first go to GR16 and then the truncate would extra again
to GR8. This adds a special case to go directly from GR32 to GR8.
This would eventually get cleaned up, but though maybe we should
avoid doing it in the first place. Our k-register handling is weird
and we could probably stand to have some more special ISD nodes
for the conversions so the i32 type would be explicit.
The file was modifiedllvm/lib/Target/X86/X86InstrAVX512.td