[RISCV][llvm] Handle sub-register vector shifts for P-extension (#176109)
For sub-register width vectors (v2i16, v4i8) on RV64 with P-extension,
the type legalizer widens them to legal types, i.e. v4i16, v8i8, before
they're getting unrolled, so they'll be redundant computation for higher
part of register.
The correct way to handle is similar to widening div/rem where there's
undef padded for high part.
stack on: https://github.com/llvm/llvm-project/pull/176093
[RISCV][llvm] Handle calling convention for P extension fixed vectors (#176093)
P extension packed SIMD types are passed in GPRs. For types larger than
XLen (e.g. v8i8 on RV32), they are split and passed via the 2XLen
mechanism, similar to i64 on RV32.
FIXME: Need to figure out the mechanism when P and V are enabled at the
same time.
stack on: https://github.com/llvm/llvm-project/pull/176193
[Github] Update actions/upload-artifact action to v6 (#176677)
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/upload-artifact](https://redirect.github.com/actions/upload-artifact)
| action | major | `v5.0.0` → `v6.0.0` |
---
> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.
---
### Release Notes
[40 lines not shown]
[LoongArch] Convert ld to fld when result is only used by sitofp
If the result of an integer load is only used by an integer-to-float
conversion, use a fp load instead. This eliminates an
integer-to-float-move (movgr2fr) instruction.
[PseudoProbe] Support loading pseudo probe from debug binary (#175698)
Pseudo probe and DWARF sections can occupy a significant amount of space
in binary for large application. An executable PE image file should not
be larger than 2GB on Windows. To support LBR collection for those large
applications, user can use llvm-objcopy to strip those debug sections
and produce a smaller binary for profiling. The original binary can then
be used as the debug binary to load pseudo probe and DWARF info.
[LTOBackend] Add -filter-save-modules= for save-temps to only dump specific modules. (#175696)
Only if module's name contains a string in -filter-save-modules, will
its temp BC files be saved. If -filter-save-modules= not set, all
modules' BC files will be saved. This feature is more useful for ThinLto
when huge numbers of modules are built separately. Using
-filter-save-modules= can reduce build time and size of generated files,
even avoid crash if some other unrelated files have issues during BC
files dumping.
[X86][APX] Ignore the use of EFLAGS when ZU is enabled (#176645)
Since we don't need to insert the XOR instruction.
Fixes redundant MOVXZ in https://godbolt.org/z/s9Kq6TPoW
[mlir][memref] Support folding memref.load from global splat constants (#176627)
This change extends the memref.load folding hook to fold loads from
global constant memrefs initialized with splat values.