LLVM/project 7a484d3clang/include/clang/AST ExprCXX.h, clang/include/clang/Serialization ASTBitCodes.h

[clang] Distinguish unresolved templates in UnresolvedLookupExpr (#89019)

This patch revolves around the misuse of UnresolvedLookupExpr in
BuildTemplateIdExpr.
    
Basically, we build up an UnresolvedLookupExpr not only for function
overloads but for "unresolved" templates wherever we need an expression
for template decls. For example, a dependent VarTemplateDecl can be
wrapped with such an expression before template instantiation. (See

https://github.com/llvm/llvm-project/commit/617007240cbfb97c8ccf6d61b0c4ca0bb62d43c9)
    
Also, one important thing is that UnresolvedLookupExpr uses a
"canonical"
QualType to describe the containing unresolved decls: a DependentTy is
for dependent expressions and an OverloadTy otherwise. Therefore, this
modeling for non-dependent templates leaves a problem in that the
expression
is marked and perceived as if describing overload functions. The

    [21 lines not shown]
DeltaFile
+90-0clang/test/SemaTemplate/template-id-expr.cpp
+22-0clang/include/clang/AST/ExprCXX.h
+22-0clang/lib/Sema/SemaExpr.cpp
+11-3clang/lib/Sema/SemaTemplate.cpp
+14-0clang/lib/Parse/ParseExprCXX.cpp
+4-1clang/include/clang/Serialization/ASTBitCodes.h
+163-410 files not shown
+185-616 files

LLVM/project 8e87d82llvm/lib/Target/SystemZ SystemZInstrInfo.cpp SystemZInstrInfo.h, llvm/test/CodeGen/SystemZ fold-copy-vector-immediate.mir

Revert "SystemZ: Fold copy of vector immediate to gr128 (#90706)"

This reverts commit 49c5f4d56a89278fcc426cabbeeec33e0915980e.
DeltaFile
+0-182llvm/test/CodeGen/SystemZ/fold-copy-vector-immediate.mir
+0-58llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
+0-3llvm/lib/Target/SystemZ/SystemZInstrInfo.h
+0-2433 files

LLVM/project ffc9a30llvm/include/llvm/MC MCSubtargetInfo.h, llvm/test/TableGen HwModeEncodeAPInt.td HwModeBitSet.td

[TableGen] Use bitwise operations to access HwMode ID.  (#88377)

1. Bitwise operations are used to access HwMode, allowing for the
coexistence of HwMode IDs for different features (such as RegInfo and
EncodingInfo). This will provide better scalability for HwMode.
Currently, most users utilize HwMode primarily for configuring
Register-related information, and few use it for configuring Encoding.
The limited scalability of HwMode has been a significant factor in this
usage pattern.
2. Sink the HwMode Encodings selection logic down to per instruction
level, this makes the logic for choosing encodings clearer and provides
better error messages.
3. Add some HwMode ID conflict detection to the getHwMode() interface.
DeltaFile
+241-0llvm/test/TableGen/HwModeEncodeAPInt.td
+162-0llvm/test/TableGen/HwModeBitSet.td
+98-26llvm/test/TableGen/HwModeEncodeDecode3.td
+60-23llvm/utils/TableGen/CodeEmitterGen.cpp
+63-8llvm/utils/TableGen/SubtargetEmitter.cpp
+26-1llvm/include/llvm/MC/MCSubtargetInfo.h
+650-581 files not shown
+652-587 files

LLVM/project 3c311b0clang/test/CodeGen arm64-microsoft-status-reg.cpp inline-asm-mixed-style.c, clang/test/OpenMP amdgpu_throw_trap.cpp nvptx_throw_trap.cpp

[test] %clang_cc1 -S: remove overridden -emit-llvm
DeltaFile
+2-2clang/test/CodeGen/arm64-microsoft-status-reg.cpp
+2-2clang/test/CodeGen/inline-asm-mixed-style.c
+2-2clang/test/OpenMP/amdgpu_throw_trap.cpp
+2-2clang/test/OpenMP/nvptx_throw_trap.cpp
+8-84 files

LLVM/project a312dd6clang/test/CodeGen bpf-preserve-static-offset-arr.c bpf-preserve-static-offset-bitfield.c

[BPF,test] %clang_cc1 -emit-llvm: remove redundant -S
DeltaFile
+1-2clang/test/CodeGen/bpf-preserve-static-offset-arr.c
+1-2clang/test/CodeGen/bpf-preserve-static-offset-bitfield.c
+1-2clang/test/CodeGen/bpf-preserve-static-offset-lvalue.c
+1-2clang/test/CodeGen/bpf-preserve-static-offset-non-bpf.c
+1-2clang/test/CodeGen/bpf-preserve-static-offset-pai.c
+5-105 files

LLVM/project c4c3efaclang/test/OpenMP amdgpu_exceptions.cpp amdgpu_try_catch.cpp

[test] %clang_cc1 -emit-llvm: remove redundant -S
DeltaFile
+9-9clang/test/OpenMP/amdgpu_exceptions.cpp
+9-9clang/test/OpenMP/amdgpu_try_catch.cpp
+9-9clang/test/OpenMP/nvptx_exceptions.cpp
+9-9clang/test/OpenMP/nvptx_throw.cpp
+9-9clang/test/OpenMP/nvptx_try_catch.cpp
+9-9clang/test/OpenMP/amdgpu_throw.cpp
+54-5411 files not shown
+72-7217 files

LLVM/project 0d501f3clang/test/CodeGen denormalfpmode-f32.c, clang/test/CodeGen/aarch64-sve-intrinsics acle_sve_reinterpret-bfloat.c acle_sve_reinterpret.c

[test] %clang_cc1 -emit-llvm: remove redundant -S

Also replace aarch64-none-linux-gnu (none can indicate an OS as well) with aarch64
DeltaFile
+22-22clang/test/CodeGen/denormalfpmode-f32.c
+17-17clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret-bfloat.c
+17-17clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret.c
+8-8clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_qcvtn.c
+8-8clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_get4_bool.c
+8-8clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_get2_bool.c
+80-80628 files not shown
+2,636-2,636634 files

LLVM/project c5de4ddclang/test/CodeGen blocks-windows.c cf-runtime-abi.c, clang/test/CodeGenObjC personality.m

[test] %clang_cc1 -emit-llvm: remove redundant -S

And replace -emit-llvm -o - with -emit-llvm-only
DeltaFile
+60-60clang/test/CodeGenObjCXX/personality.mm
+48-48clang/test/CodeGenOpenCL/amdgpu-features.cl
+36-36clang/test/CodeGen/blocks-windows.c
+35-35clang/test/CodeGenObjC/personality.m
+33-33clang/test/CodeGen/cf-runtime-abi.c
+20-20clang/test/CodeGen/mips-zero-sized-struct.c
+232-232345 files not shown
+1,010-1,010351 files

LLVM/project 64ee821mlir/lib/Dialect/Linalg/TransformOps LinalgTransformOps.cpp

[mlir] Fix a warning

This patch fixes:

  llvm-project/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp:1715:28:
  error: unused variable 'kPadToMultipleOfKeyword'
  [-Werror,-Wunused-const-variable]
DeltaFile
+0-2mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+0-21 files

LLVM/project f2f65edmlir/include/mlir/Dialect/Linalg/TransformOps LinalgTransformOps.td, mlir/lib/Dialect/Linalg/TransformOps LinalgTransformOps.cpp

[mlir][transform] Add support for transform.param pad multiples in `PadOp` (#90755)

This patch modifies the definition of `PadOp` to take transform params
and handles for the `pad_to_multiple_of` operand.

---------

Co-authored-by: Oleksandr "Alex" Zinenko <ftynse at gmail.com>
DeltaFile
+110-49mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+37-2mlir/test/Dialect/Linalg/transform-op-pad.mlir
+26-11mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
+19-2mlir/test/python/dialects/transform_structured_ext.py
+13-2mlir/python/mlir/dialects/transform/structured.py
+205-665 files

LLVM/project 4dede5eclang/lib/Sema SemaExpr.cpp

[Sema] Remove redundant check in an else branch. NFC

after https://reviews.llvm.org/D83788

Fix #91090
DeltaFile
+3-3clang/lib/Sema/SemaExpr.cpp
+3-31 files

LLVM/project 1b90095clang/test/Driver msvc-link.c

[Driver,test] Improve msvc-link.c
DeltaFile
+27-32clang/test/Driver/msvc-link.c
+27-321 files

LLVM/project abac984.github/workflows release-binaries.yml set-release-binary-outputs.sh

[Workflows] Re-write release-binaries workflow (#89521)

This updates the release-binaries workflow so that the different build
stages are split across multiple jobs. This saves money by reducing the
time spent on the larger github runners and also makes it easier to
debug, because now it's possible to build a smaller release package
(with clang and lld) using only the free GitHub runners.

The workflow no longer uses the test-release.sh script but instead uses
the Release.cmake cache. This gives the workflow more flexibility and
ensures that the binary package will always be created even if the tests
fail.

This idea to split the stages comes from the "LLVM Precommit CI through
Github Actions" RFC:

https://discourse.llvm.org/t/rfc-llvm-precommit-ci-through-github-actions/76456
DeltaFile
+190-73.github/workflows/release-binaries.yml
+0-7.github/workflows/set-release-binary-outputs.sh
+190-802 files

LLVM/project 7e36c4dllvm/include/llvm/MC MCStreamer.h, llvm/lib/CodeGen/AsmPrinter AsmPrinterInlineAsm.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.5-bogner
DeltaFile
+10-6llvm/test/MC/AsmParser/assembler-expressions-inlineasm.ll
+1-8llvm/lib/MC/MCObjectStreamer.cpp
+2-5llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+2-5llvm/include/llvm/MC/MCStreamer.h
+0-3llvm/tools/llvm-ml/llvm-ml.cpp
+0-3llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
+15-304 files not shown
+16-4010 files

LLVM/project 3cbfc9dmlir/test/mlir-tblgen attr-or-type-format-invalid.td, mlir/tools/mlir-tblgen AttrOrTypeFormatGen.cpp OpFormatGen.cpp

[mlir][ODS][NFC] Deduplicate `ref` and `qualified` handling (#91080)

Both the attribute and type format generator and the op format generator
independently implemented the parsing and verification of the `ref` and
`qualified` directives with little to no differences.

This PR moves the implementation of these into the common `FormatParser`
class to deduplicate the implementations.
DeltaFile
+10-42mlir/tools/mlir-tblgen/AttrOrTypeFormatGen.cpp
+5-35mlir/tools/mlir-tblgen/OpFormatGen.cpp
+36-0mlir/tools/mlir-tblgen/FormatGen.cpp
+9-1mlir/tools/mlir-tblgen/FormatGen.h
+1-1mlir/test/mlir-tblgen/attr-or-type-format-invalid.td
+61-795 files

LLVM/project b54a78dllvm/include/llvm/Analysis LoopAccessAnalysis.h, llvm/lib/Analysis LoopAccessAnalysis.cpp

[LV,LAA] Don't vectorize loops with load and store to invar address.

Code checking stores to invariant addresses and reductions made an
incorrect assumption that the case of both a load & store to the same
invariant address does not need to be handled.

In some cases when vectorizing with runtime checks, there may be
dependences with a load and store to the same address, storing a
reduction value.

Update LAA to separately track if there was a store-store and a
load-store dependence with an invariant addresses.

Bail out early if there as a load-store dependence with invariant
address. If there was a store-store one, still apply the logic checking
if they all store a reduction.
DeltaFile
+21-7llvm/include/llvm/Analysis/LoopAccessAnalysis.h
+12-4llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+9-5llvm/lib/Analysis/LoopAccessAnalysis.cpp
+1-2llvm/test/Transforms/LoopVectorize/reduction-with-invariant-store.ll
+43-184 files

LLVM/project 677dddellvm/lib/Transforms/Coroutines CoroSplit.cpp, llvm/lib/Transforms/IPO BlockExtractor.cpp

[Transforms] Use StringRef::operator== instead of StringRef::equals (NFC) (#91072)

I'm planning to remove StringRef::equals in favor of
StringRef::operator==.

- StringRef::operator==/!= outnumber StringRef::equals by a factor of
  31 under llvm/ in terms of their usage.

- The elimination of StringRef::equals brings StringRef closer to
  std::string_view, which has operator== but not equals.

- S == "foo" is more readable than S.equals("foo"), especially for
  !Long.Expression.equals("str") vs Long.Expression != "str".
DeltaFile
+13-13llvm/lib/Transforms/Utils/SymbolRewriter.cpp
+2-3llvm/lib/Transforms/Coroutines/CoroSplit.cpp
+2-3llvm/lib/Transforms/IPO/BlockExtractor.cpp
+2-2llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
+2-2llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
+1-1llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp
+22-244 files not shown
+26-2810 files

LLVM/project 24f5fc7flang/lib/Lower/OpenMP DataSharingProcessor.cpp, flang/lib/Optimizer/Builder HLFIRTools.cpp

 [flang][MLIR][OpenMP] Extend delayed privatization for arrays and characters (#85023)

DeltaFile
+100-0flang/test/Lower/OpenMP/delayed-privatization-array.f90
+67-0flang/test/Lower/OpenMP/delayed-privatization-allocatable-array.f90
+67-0flang/test/Lower/OpenMP/delayed-privatization-character-array.f90
+59-0flang/test/Lower/OpenMP/delayed-privatization-character.f90
+27-7flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
+8-7flang/lib/Optimizer/Builder/HLFIRTools.cpp
+328-142 files not shown
+336-178 files

LLVM/project c7910eellvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[SLP][NFC]Use std::optional::value_or.
DeltaFile
+1-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+1-11 files

LLVM/project 0044856llvm/lib/CodeGen TargetSchedule.cpp

Revert "llvm/lib/CodeGen/TargetSchedule.cpp:132:12: warning: Assert statement modifies 'NIter'" (#91079)

Reverts llvm/llvm-project#90982

NIter was only declared in !NDEBUG, and only used for assertions - so it
was correct that it was incremented inside the assertion. (& in fact now
the non-asserts build fails, because the variable is incremented even
though it isn't declared)
DeltaFile
+1-2llvm/lib/CodeGen/TargetSchedule.cpp
+1-21 files

LLVM/project 18d1df4llvm/lib/CodeGen TargetSchedule.cpp

llvm/lib/CodeGen/TargetSchedule.cpp:132:12: warning: Assert statement modifies 'NIter' (#90982)

Modified the assert statement
DeltaFile
+2-1llvm/lib/CodeGen/TargetSchedule.cpp
+2-11 files

LLVM/project 0d493edllvm/docs AMDGPUUsage.rst ReleaseNotes.rst, llvm/lib/Target/AMDGPU SIModeRegisterDefaults.cpp SIISelLowering.cpp

Revert 4 last AMDGPU commits to unbreak Windows bots

Revert "AMDGPU: Try to fix build error with old gcc"
This reverts commit c7ad12d0d7606b0b9fb531b0b273bdc5f1490ddb.

Revert "AMDGPU: Use umin in set.rounding expansion"
This reverts commit a56f0b51dd988ad2b533de759c98457c1ed42456.

Revert "AMDGPU: Optimize set_rounding if input is known to fit in 2 bits (#88588)"
This reverts commit b4e751e2ab0ff152ed18dea59ebf9691e963e1dd.

Revert "AMDGPU: Implement llvm.set.rounding (#88587)"
This reverts commit 9731b77e80261c627d79980f8c275700bdaf6591.
DeltaFile
+0-1,665llvm/test/CodeGen/AMDGPU/llvm.set.rounding.ll
+0-119llvm/lib/Target/AMDGPU/SIModeRegisterDefaults.cpp
+0-88llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+0-7llvm/lib/Target/AMDGPU/SIModeRegisterDefaults.h
+0-6llvm/docs/AMDGPUUsage.rst
+0-2llvm/docs/ReleaseNotes.rst
+0-1,8872 files not shown
+0-1,8908 files

LLVM/project a98a6e9libc/src/__support/FPUtil/aarch64 fenv_darwin_impl.h FEnvImpl.h, libc/src/__support/FPUtil/arm FEnvImpl.h

Add clarifying parenthesis around non-trivial conditions in ternary expressions. (#90391)

Fixes [#85868](https://github.com/llvm/llvm-project/issues/85868)

Parenthesis are added as requested on ternary operators with non trivial conditions.

I used this [precedence table](https://en.cppreference.com/w/cpp/language/operator_precedence) for reference, to make sure we get the expected behavior on each change.
DeltaFile
+24-24libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h
+20-20libc/src/__support/FPUtil/arm/FEnvImpl.h
+12-12libc/src/__support/FPUtil/x86_64/FEnvImpl.h
+10-10libc/src/__support/FPUtil/riscv/FEnvImpl.h
+10-10libc/src/__support/FPUtil/aarch64/FEnvImpl.h
+2-2mlir/lib/Dialect/Tosa/Transforms/TosaDecomposeTransposeConv.cpp
+78-7812 files not shown
+94-9618 files

LLVM/project 028f1b0libcxx/test/std/language.support/support.limits/support.limits.general unordered_map.version.compile.pass.cpp vector.version.compile.pass.cpp

[libc++] Fix P1206R7 feature test macros (#90914)

- Add missing `__cpp_lib_containers_ranges` feature test macro
- Constrain `__cpp_lib_ranges_to_container` to the `<ranges>` header,
since the standard does not list it in containers' headers

Ref:
-
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1206r7.pdf#section.18
- https://eel.is/c++draft/support.limits#lib:__cpp_lib_containers_ranges
-
https://eel.is/c++draft/support.limits#lib:__cpp_lib_ranges_to_container
DeltaFile
+31-31libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp
+31-31libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
+31-31libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
+31-31libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp
+31-31libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
+31-31libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp
+186-1869 files not shown
+370-33115 files

LLVM/project cb015b9clang/lib/CodeGen CGBuiltin.cpp, clang/test/CodeGen pr87758.c math-errno.c

[clang][CodeGen] Propagate pragma set fast-math flags to floating point builtins (#90377)

This is a fix for the issue #87758 where fast-math flags are not
propagated all builtins.

It seems like pragmas with fast math flags was only propagated to calls
of unary floating point builtins. This patch propagate them also for
binary and ternary floating point builtins.
DeltaFile
+76-0clang/test/CodeGen/pr87758.c
+5-4clang/lib/CodeGen/CGBuiltin.cpp
+3-3clang/test/CodeGen/math-errno.c
+84-73 files

LLVM/project 7ee6288llvm/include/llvm/Support YAMLTraits.h, llvm/lib/Support YAMLTraits.cpp APFloat.cpp

[Support] Use StringRef::operator== instead of StringRef::equals (NFC) (#91042)

I'm planning to remove StringRef::equals in favor of
StringRef::operator==.

- StringRef::operator== outnumbers StringRef::equals by a factor of 25
  under llvm/ in terms of their usage.

- The elimination of StringRef::equals brings StringRef closer to
  std::string_view, which has operator== but not equals.

- S == "foo" is more readable than S.equals("foo"), especially for
  !Long.Expression.equals("str") vs Long.Expression != "str".
DeltaFile
+7-8llvm/include/llvm/Support/YAMLTraits.h
+3-3llvm/lib/Support/YAMLTraits.cpp
+2-2llvm/lib/Support/APFloat.cpp
+1-1llvm/lib/Support/CodeGenCoverage.cpp
+1-1llvm/lib/Support/FileCollector.cpp
+1-1llvm/lib/Support/JSON.cpp
+15-162 files not shown
+17-188 files

LLVM/project 0a602d2libcxx/include chrono, libcxx/include/__chrono zoned_time.h

[libc++][TZDB] Implements zoned_traits.

Implements parts of:
- P0355 Extending chrono to Calendars and Time Zones
DeltaFile
+55-0libcxx/include/__chrono/zoned_time.h
+45-0libcxx/test/std/time/time.zone/time.zone.zonedtraits/const_time_zone_locate_zone.pass.cpp
+36-0libcxx/test/std/time/time.zone/time.zone.zonedtraits/const_time_zone_default_zone.pass.cpp
+32-0libcxx/test/std/time/time.zone/time.zone.zonedtraits/types.compile.pass.cpp
+6-0libcxx/test/libcxx/diagnostics/chrono.nodiscard.verify.cpp
+4-0libcxx/include/chrono
+178-03 files not shown
+181-29 files

LLVM/project 76aa042libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.negbin eval.pass.cpp, libcxx/test/std/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.lognormal eval.pass.cpp eval_param.pass.cpp

[libc++] Adjust some of the [rand.dist] critical values that are too strict (#88669)

Adjust some of the [rand.dist] critical values that are too strict

- Most critical values are determined empirically by running each test
51
times with a different PRNG seed and finding the smallest symmetric
interval
around the median that contains 90% of the sample means, variances, etc.

- For the Kolmogorov-Smirnov tests, the alpha=0.1 critical value for
large N
   is 1.224/sqrt(N).

- For normally distributed variates, the sample kurtosis is distributed
as
   Normal(0, 24/N). For N=1e5, this gives a 90% confidence interval of
0+/-0.0255. For Binomial(40, 0.25), which is approximately normal, the
   kurtosis is -0.0167, so the relative 90% CI is large, on the order of

    [3 lines not shown]
DeltaFile
+68-74libcxx/test/std/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.plinear/eval.pass.cpp
+11-12libcxx/test/std/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.plinear/eval_param.pass.cpp
+9-9libcxx/test/std/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.lognormal/eval.pass.cpp
+9-9libcxx/test/std/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.lognormal/eval_param.pass.cpp
+7-7libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.negbin/eval.pass.cpp
+7-7libcxx/test/std/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.poisson/eval_param.pass.cpp
+111-11822 files not shown
+192-19928 files

LLVM/project caacf86llvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp DAGCombiner.cpp, llvm/test/CodeGen/SystemZ pr60413.ll

[DAG] Fold freeze(shuffle(x,y,m)) -> shuffle(freeze(x),freeze(y),m) (#90952)

If the shuffle mask contains no undef elements, then we can move the freeze through a shuffle node.

This requires special case handling to create a new ShuffleVectorSDNode.

Includes VECTOR_SHUFFLE support for isGuaranteedNotToBeUndefOrPoison  / canCreateUndefOrPoison.
DeltaFile
+214-520llvm/test/CodeGen/X86/widen-load-of-small-alloca-with-zero-upper-half.ll
+130-131llvm/test/CodeGen/X86/sdiv_fix_sat.ll
+87-91llvm/test/CodeGen/SystemZ/pr60413.ll
+27-0llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+15-5llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+4-6llvm/test/CodeGen/X86/setcc-non-simple-type.ll
+477-7531 files not shown
+479-7557 files

LLVM/project 1e3c630mlir/lib/AsmParser AsmParserImpl.h Parser.cpp, mlir/test/IR custom-float-attr-roundtrip.mlir parser.mlir

[MLIR] Extend floating point parsing support (#90442)

Parsing support for floating point types was missing a few features:
1. Parsing floating point attributes from integer literals was supported
only for types with bitwidth smaller or equal to 64.
2. Downstream users could not use `AsmParser::parseFloat` to parse float
types which are printed as integer literals.

This commit addresses both these points. It extends
`Parser::parseFloatFromIntegerLiteral` to support arbitrary bitwidth,
and exposes a new API to parse arbitrary floating point given an
fltSemantics as input. The usage of this new API is introduced in the
Test Dialect.
DeltaFile
+57-0mlir/test/IR/custom-float-attr-roundtrip.mlir
+41-0mlir/test/lib/Dialect/Test/TestAttributes.cpp
+22-6mlir/lib/AsmParser/AsmParserImpl.h
+24-0mlir/test/IR/parser.mlir
+6-10mlir/lib/AsmParser/Parser.cpp
+11-0mlir/test/lib/Dialect/Test/TestAttrDefs.td
+161-161 files not shown
+165-167 files