LLVM/project af5dd51 — llvm/include/llvm/Transforms/Vectorize SLPVectorizer.h, llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[SLP][NFC]Move poor throughput insts logic into a helper function, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/231042
DeltaFile
+23-19llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+5-0llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
+28-192 files

LLVM/project 86d9538 — llvm/include/llvm/TableGen Record.h, llvm/lib/TableGen Record.cpp

TableGen: Cache resolved class instantiations

The same class instantiation is often referenced many times in one
record, and each reference was resolved again from scratch along with
everything nested in its arguments. Cache the results in MapResolver and
RecordResolver. The cache is cleared when the mappings change, and is
bypassed while a mapped variable is being resolved.

Nested instantiations are resolved through a TrackUnresolvedResolver,
which does not change the result. These share the cache of the
underlying resolver, which also records whether any references were left
unresolved so the trackers can be updated on a hit.

Gigainstructions executed by llvm-tblgen --null-backend

             before   after
  AMDGPU.td   71.75   18.22  -74.6%
  X86.td       6.10    6.15   +0.8%
  AArch64.td   3.28    3.32   +1.3%

    [3 lines not shown]
DeltaFile
+142-3llvm/include/llvm/TableGen/Record.h
+14-4llvm/lib/TableGen/Record.cpp
+156-72 files

LLVM/project f52d162 — llvm/include/llvm/TableGen Record.h, llvm/lib/TableGen Record.cpp

TableGen: Skip resolving values that cannot change

Lists, dags, bits and arguments made only of leaf values always resolve
to themselves, but resolving them still walked every element. Record
this when they are created and return early.

Gigainstructions executed by llvm-tblgen --null-backend

             before   after
  AMDGPU.td   79.12   71.73   -9.3%
  X86.td       6.25    6.12   -2.1%
  AArch64.td   3.40    3.28   -3.7%
  RISCV.td     8.34    8.19   -1.8%

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+18-2llvm/include/llvm/TableGen/Record.h
+19-0llvm/lib/TableGen/Record.cpp
+37-22 files

LLVM/project cc988af — llvm/lib/TableGen Record.cpp

TableGen: Use DenseMap for the IntInit pool

Gigainstructions executed by llvm-tblgen --null-backend

             before   after
  AMDGPU.td   79.34   79.13   -0.3%
  X86.td       6.30    6.25   -0.7%
  AArch64.td   3.43    3.41   -0.6%
  RISCV.td     8.40    8.34   -0.7%

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+1-2llvm/lib/TableGen/Record.cpp
+1-21 files

LLVM/project 6239a74 — llvm/lib/Transforms/Vectorize VPlan.h

[VPlan] Use getFastMathFlagsOrNone in VPIRFlags::applyFlags (NFC) (#231036)

applyFlags hand-rolled the same field-by-field FastMathFlagsTy to
FastMathFlags conversion as getFastMathFlagsOrNone. Use the latter
together with copyFastMathFlags.
DeltaFile
+2-10llvm/lib/Transforms/Vectorize/VPlan.h
+2-101 files

LLVM/project 5be1e6d — llvm/test/TableGen AMDGPUTargetDefSubArchSpelling.td AMDGPUTargetDefLDSAllocGranularity.td

AMDGPU: Use TargetSubtarget.td in TargetDef tablegen tests (#231018)

The -gen-amdgpu-target-def tests only need the subtarget and processor
classes. Include TargetSubtarget.td instead of Target.td, which also
checks that it works standalone, and drop the unneeded dummy Target.

The 14 llvm-tblgen RUN lines each parsed Target.td, which costs 1.29 G
instructions:u (Release+asserts); TargetSubtarget.td costs 0.005 G.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+10-20llvm/test/TableGen/AMDGPUTargetDefErrors.td
+1-2llvm/test/TableGen/AMDGPUTargetDefSubArchSpelling.td
+1-2llvm/test/TableGen/AMDGPUTargetDefLDSAllocGranularity.td
+12-243 files

LLVM/project 6719b9e — llvm/utils/gn/secondary/llvm/include/llvm/Analysis BUILD.gn, llvm/utils/gn/secondary/llvm/include/llvm/CodeGen BUILD.gn

[gn] port c90b6414e607 (mlgo EmitC models) (#231035)

Ports ab547095ead5 since it's needed unconditionally after c90b6414e607.

Register only the checked-in, pre-lowered _test_inc test model.
Lowering .mlir models is still not implemented in the GN build.
DeltaFile
+55-0llvm/utils/gn/secondary/llvm/include/llvm/CodeGen/BUILD.gn
+55-0llvm/utils/gn/secondary/llvm/include/llvm/Analysis/BUILD.gn
+0-2llvm/utils/gn/secondary/llvm/test/BUILD.gn
+1-0llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
+1-0llvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn
+112-25 files

LLVM/project 8a0968e — llvm/utils/gn/build write_file.py, llvm/utils/gn/secondary/lldb/test BUILD.gn

[gn] make write_file.py replace literal \n with newlines (#231034)

Like write_cmake_config.py. This makes it possible to write multi-line
generated headers from an action(), which is needed for the next commit.

As demo, update the only current existing caller to write a
trailing newline. This matches the CMake build.
DeltaFile
+2-2llvm/utils/gn/build/write_file.py
+1-1llvm/utils/gn/secondary/lldb/test/BUILD.gn
+3-32 files

LLVM/project 48397d7 — llvm/test/Transforms/SLPVectorizer/AMDGPU ordered-reduction-coalesced-loads.ll fmul-extract-fadd-chain.ll

update tests
DeltaFile
+0-88llvm/test/Transforms/SLPVectorizer/AMDGPU/fmul-extract-fadd-chain.ll
+16-64llvm/test/Transforms/SLPVectorizer/AMDGPU/ordered-reduction-coalesced-loads.ll
+16-1522 files

LLVM/project ebfca51 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Transforms/SLPVectorizer/AMDGPU alt-fmul-fadd-cost.ll fma-operand-contract-selection.ll

[AMDGPU] Limit the fmul fusion discount to a matching context type

The fmul is free when its context instruction feeds a fusable fadd or
fsub. A vector fmul priced with a scalar lane as the context inherits
that fusion only when it is emitted lane by lane. On a packed type the
scalar user does not show that the vector fmul feeds a vector fadd, and
products extracted into a scalar fadd chain keep the packed fmul while
the fma is lost.
DeltaFile
+88-0llvm/test/Transforms/SLPVectorizer/AMDGPU/fmul-extract-fadd-chain.ll
+64-16llvm/test/Transforms/SLPVectorizer/AMDGPU/ordered-reduction-coalesced-loads.ll
+38-37llvm/test/Transforms/SLPVectorizer/AMDGPU/ordered-reduction-fma-fusion.ll
+36-6llvm/test/Transforms/SLPVectorizer/AMDGPU/fma-operand-contract-selection.ll
+7-11llvm/test/Transforms/SLPVectorizer/AMDGPU/alt-fmul-fadd-cost.ll
+5-2llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+238-721 files not shown
+239-737 files

LLVM/project 43e3e43 — llvm/test/tools/llubi intr_experimental_vector.ll, llvm/tools/llubi/lib Value.h Interpreter.cpp

[llubi] Use the correct poison representation for byte values (#231028)

We always use `ByteValue` to represent `bN poison`.

The test is generated by DeepSeek-V4.1-Flash. Looks like there is no
other bug like this.
DeltaFile
+3-0llvm/test/tools/llubi/intr_experimental_vector.ll
+1-1llvm/tools/llubi/lib/Interpreter.cpp
+1-0llvm/tools/llubi/lib/Value.h
+5-13 files

LLVM/project 007418c — llvm/lib/CodeGen RegAllocGreedy.cpp RegAllocGreedy.h

RegAllocGreedy: Avoid unused block frequency lookups in hint recoloring (#231027)

collectHintInfo looked up the block frequency of every copy, but the
frequencies are only used for the profitability check when the register
would be recolored. Most visited registers are already assigned the
target register, so record the block and look the frequency up only
when it is needed. Also use a SmallDenseSet for the visited set, which
otherwise falls back to a std::set on anything but tiny components.

On a stress test with 4000 critical edges into a block with 4 PHIs,
this roughly halves the time in Greedy.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+4-4llvm/lib/CodeGen/RegAllocGreedy.h
+3-4llvm/lib/CodeGen/RegAllocGreedy.cpp
+7-82 files

LLVM/project 36263cf — llvm/lib/Target/RISCV RISCVISelLowering.cpp RISCVInstrInfoP.td

[RISCV][P-ext] Change RISCVISD::SATI to use [1,bitwidth] for the immediate. (#230377)

This matches the intrinsics and assembly syntax for the instruction.

Assisted-by: Claude
DeltaFile
+15-17llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+7-8llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+22-252 files

LLVM/project 42c2dfb — llvm/lib/CodeGen/SelectionDAG SDNodeInfo.cpp

[SelectionDAG] Verify SDTCisSameNumEltsAs in SDNodeInfo::verifyNode (#230616)

Assisted-by: Claude
DeltaFile
+16-1llvm/lib/CodeGen/SelectionDAG/SDNodeInfo.cpp
+16-11 files

LLVM/project c8f1c82 — llvm/test/TableGen AMDGPUTargetDefSubArchSpelling.td AMDGPUTargetDefLDSAllocGranularity.td

AMDGPU: Use TargetSubtarget.td in TargetDef tablegen tests

The -gen-amdgpu-target-def tests only need the subtarget and processor
classes. Include TargetSubtarget.td instead of Target.td, which also
checks that it works standalone, and drop the unneeded dummy Target.

The 14 llvm-tblgen RUN lines each parsed Target.td, which costs 1.29 G
instructions:u (Release+asserts); TargetSubtarget.td costs 0.005 G.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+10-20llvm/test/TableGen/AMDGPUTargetDefErrors.td
+1-2llvm/test/TableGen/AMDGPUTargetDefSubArchSpelling.td
+1-2llvm/test/TableGen/AMDGPUTargetDefLDSAllocGranularity.td
+12-243 files

LLVM/project b140a7b — llvm/include/llvm/TargetParser CMakeLists.txt, llvm/lib/Target/AMDGPU R600.td R600TargetParserDef.td

AMDGPU: Use minimal tablegen inputs for TargetParser (#231017)

Avoid parsing the heavyweight AMDGPU.td to generate the TargetParser
inc files. Only include the minimal subtarget information required.

llvm-min-tblgen -gen-amdgpu-target-def (Release+asserts):
wall instructions:u peak RSS .td deps
  AMDGPU.td                    12.16 s  79.49 G         909 MB    76
  AMDGPUTargetParserDef.td      0.01 s   0.056 G          7 MB    10
  R600.td                       0.38 s   1.59 G          92 MB    57
  R600TargetParserDef.td       <0.01 s   0.008 G          6 MB    10

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+13-0llvm/lib/Target/AMDGPU/R600TargetParserDef.td
+13-0llvm/lib/Target/AMDGPU/AMDGPUTargetParserDef.td
+0-4llvm/lib/Target/AMDGPU/R600.td
+2-2utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+2-2llvm/utils/gn/secondary/llvm/include/llvm/TargetParser/BUILD.gn
+2-2llvm/include/llvm/TargetParser/CMakeLists.txt
+32-101 files not shown
+34-107 files

LLVM/project 5764334 — llvm/test/CodeGen/RISCV/GlobalISel/irtranslator calling-conv-half.ll calls.ll, llvm/test/CodeGen/RISCV/GlobalISel/legalizer legalize-div-rv64.mir

RISCV/GlobalISel: Mark unused implicit-def $x1 dead in call lowering (#231023)

Co-authored-by: Claude Opus 4.8 <noreply at anthropic.com>
DeltaFile
+42-42llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-lp64-lp64f-lp64d-common.ll
+42-42llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-ilp32-ilp32f-ilp32d-common.ll
+35-35llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/vararg.ll
+32-32llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calls.ll
+24-24llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-half.ll
+22-22llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-div-rv64.mir
+197-19725 files not shown
+377-37631 files

LLVM/project ddb019e — llvm/lib/CodeGen RegAllocGreedy.cpp RegAllocGreedy.h

RegAllocGreedy: Avoid unused block frequency lookups in hint recoloring

collectHintInfo looked up the block frequency of every copy, but the
frequencies are only used for the profitability check when the register
would be recolored. Most visited registers are already assigned the
target register, so record the block and look the frequency up only
when it is needed. Also use a SmallDenseSet for the visited set, which
otherwise falls back to a std::set on anything but tiny components.

On a stress test with 4000 critical edges into a block with 4 PHIs,
this roughly halves the time in Greedy.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+4-4llvm/lib/CodeGen/RegAllocGreedy.h
+3-4llvm/lib/CodeGen/RegAllocGreedy.cpp
+7-82 files

LLVM/project 5e68ef9 — llvm/lib/Transforms/IPO AttributorAttributes.cpp, llvm/test/Transforms/Attributor issue87856.ll nocapture-null-pointer-is-valid.ll

Attributor: Use NullPointerIsDefined for null nocapture check (#229333)

Previously this did not try to respect the null_pointer_is_valid attribute.
Query NullPointerIsDefined with the anchor scope, matching the handling
in AANoAlias::isImpliedByIR.

Note: a valid null passed to a capturing callee still gets noalias at the
call site. AANoAliasCallSiteArgument queries IRPosition::value() of the
constant, which has no anchor scope, so null_pointer_is_valid is not
consulted there.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+100-0llvm/test/Transforms/Attributor/nocapture-null-pointer-is-valid.ll
+5-6llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+1-1llvm/test/Transforms/Attributor/issue87856.ll
+106-73 files

LLVM/project 42c2f71 — clang-tools-extra/clang-tidy/utils IncludeSorter.cpp, clang-tools-extra/docs ReleaseNotes.md

[clang-tidy] Don't insert blank line in IncludeInserter (#221428)

Fixes https://github.com/llvm/llvm-project/issues/52859.
DeltaFile
+0-9clang-tools-extra/unittests/clang-tidy/IncludeInserterTest.cpp
+3-4clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
+4-0clang-tools-extra/docs/ReleaseNotes.md
+0-2clang-tools-extra/unittests/clang-tidy/TransformerClangTidyCheckTest.cpp
+7-154 files

LLVM/project 150105e — llvm/test/TableGen AMDGPUTargetDefSubArchSpelling.td AMDGPUTargetDefLDSAllocGranularity.td

AMDGPU: Use TargetSubtarget.td in TargetDef tablegen tests

The -gen-amdgpu-target-def tests only need the subtarget and processor
classes. Include TargetSubtarget.td instead of Target.td, which also
checks that it works standalone, and drop the unneeded dummy Target.

The 14 llvm-tblgen RUN lines each parsed Target.td, which costs 1.29 G
instructions:u (Release+asserts); TargetSubtarget.td costs 0.005 G.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+10-20llvm/test/TableGen/AMDGPUTargetDefErrors.td
+1-2llvm/test/TableGen/AMDGPUTargetDefSubArchSpelling.td
+1-2llvm/test/TableGen/AMDGPUTargetDefLDSAllocGranularity.td
+12-243 files

LLVM/project f0e6e71 — llvm/lib/Target/AMDGPU R600Schedule.td R600TargetParserDef.td

Move NullALU and ALU_NULL to R600Schedule.td
DeltaFile
+0-4llvm/lib/Target/AMDGPU/R600TargetParserDef.td
+0-4llvm/lib/Target/AMDGPU/R600.td
+2-0llvm/lib/Target/AMDGPU/R600Schedule.td
+2-83 files

LLVM/project 847aacf — llvm/include/llvm/TargetParser CMakeLists.txt, llvm/lib/Target/AMDGPU AMDGPUTargetParserDef.td R600TargetParserDef.td

AMDGPU: Use minimal tablegen inputs for TargetParser

Avoid parsing the heavyweight AMDGPU.td to generate the TargetParser
inc files. Only include the minimal subtarget information required.

llvm-min-tblgen -gen-amdgpu-target-def (Release+asserts):
                               wall     instructions:u  peak RSS  .td deps
  AMDGPU.td                    12.16 s  79.49 G         909 MB    76
  AMDGPUTargetParserDef.td      0.01 s   0.056 G          7 MB    10
  R600.td                       0.38 s   1.59 G          92 MB    57
  R600TargetParserDef.td       <0.01 s   0.008 G          6 MB    10

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+17-0llvm/lib/Target/AMDGPU/R600TargetParserDef.td
+13-0llvm/lib/Target/AMDGPU/AMDGPUTargetParserDef.td
+2-2utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+2-2llvm/utils/gn/secondary/llvm/include/llvm/TargetParser/BUILD.gn
+2-2llvm/include/llvm/TargetParser/CMakeLists.txt
+36-65 files

LLVM/project d429981 — llvm/include/llvm/Target Target.td TargetSubtarget.td

TableGen: Split subtarget and processor classes out of Target.td (#231016)

Move the subtarget feature, predicate and processor definitions into a 
separate file. In the future this will allow TargetParser tablegen inputs to 
use them without parsing the full target definitions like instructions, 
registers and intrinsics.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+182-0llvm/include/llvm/Target/TargetSubtarget.td
+1-173llvm/include/llvm/Target/Target.td
+183-1732 files

LLVM/project 37c927a — clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/Dialect/IR CIRDialect.cpp

[CIR] Add missing Coroutine region successors (#230466)

* A coroutine may be destroyed after its `initial_suspend`. Add an edge
from there to `destroy`
* `suspend` has no edge to `resume`. Add this, too
DeltaFile
+14-13clang/include/clang/CIR/Dialect/IR/CIROps.td
+16-6clang/unittests/CIR/ControlFlowTest.cpp
+14-4clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+44-233 files

LLVM/project a160747 — llvm/include/llvm/Option LibraryOptions.td, llvm/lib/Transforms/Scalar ScalarOptions.td LoopStrengthReduce.cpp

[Option] Add Condition for build-conditional library options (#230898)

A field under `let Condition = AssertsOnly` declares its member, table
row, and parser case under `#if !defined(NDEBUG)`. In other builds, the
command line rejects the option as an unknown argument, and readers must
be guarded like those of a conditional cl::opt. An OptionsStruct's table
rows refer to groups and alias targets by OPT_ enumerator, since an
omitted row shifts the IDs after it.

Port -loop-fusion-verbose-debug and -stress-ivchain, the NDEBUG-only
Scalar options.

Aided by Opus 5.5
DeltaFile
+62-11llvm/utils/TableGen/Basic/OptionParserEmitter.cpp
+17-25llvm/lib/Transforms/Scalar/LoopFuse.cpp
+12-18llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+14-9llvm/unittests/Option/LibraryOptionsTest.cpp
+9-0llvm/include/llvm/Option/LibraryOptions.td
+7-0llvm/lib/Transforms/Scalar/ScalarOptions.td
+121-631 files not shown
+127-637 files

LLVM/project fa18c94 — llvm/test/CodeGen/RISCV/GlobalISel/irtranslator calling-conv-half.ll calls.ll, llvm/test/CodeGen/RISCV/GlobalISel/legalizer legalize-div-rv64.mir

RISCV/GlobalISel: Mark unused implicit-def $x1 dead in call lowering

Co-authored-by: Claude Opus 4.8 <noreply at anthropic.com>
DeltaFile
+42-42llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-lp64-lp64f-lp64d-common.ll
+42-42llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-ilp32-ilp32f-ilp32d-common.ll
+35-35llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/vararg.ll
+32-32llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calls.ll
+24-24llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-half.ll
+22-22llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-div-rv64.mir
+197-19725 files not shown
+377-37631 files

LLVM/project 8952b11 — clang/lib/StaticAnalyzer/Checkers/WebKit PtrTypesSemantics.cpp, clang/test/Analysis/Checkers/WebKit nodelete-lazy-initialize.cpp mock-types.h

[WebKit checkers] Treat destruction of a null smart pointer temporary as trivial (#230809)

TrivialFunctionAnalysis treated HashMap<K, Ref<V>>::get as non-trivial
because its miss path, MappedTraits::peek(MappedTraits::emptyValue()),
creates and destroys a temporary Ref<V> constructed from
HashTableEmptyValue. Ref's destructor calls deref(), which may delete,
so any local raw pointer obtained from such a HashMap was reported by
alpha.webkit.UncountedLocalVarsChecker even in otherwise trivial
contexts.

Skip the destructor check of a temporary owning smart pointer when it is
known to hold nullptr: one which is default constructed, constructed
from nullptr or HashTableEmptyValue, copied or moved from such a smart
pointer, or returned by a function whose body is a single return
statement of such a smart pointer (e.g.
HashTraits<Ref<T>>::emptyValue()).

Also treat CXXScalarValueInitExpr (e.g. T() for a scalar T as in
GenericHashTraits<T>::emptyValue()) as trivial.

Authored with Claude Code.
DeltaFile
+60-1clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
+54-0clang/test/Analysis/Checkers/WebKit/uncounted-local-vars.cpp
+4-4clang/test/Analysis/Checkers/WebKit/nodelete-annotation.cpp
+3-0clang/test/Analysis/Checkers/WebKit/mock-types.h
+1-1clang/test/Analysis/Checkers/WebKit/nodelete-lazy-initialize.cpp
+122-65 files

LLVM/project 9dd80b7 — clang/test/CodeGen/RISCV rvp-intrinsics.c

[RISCV][P-ext] Re-generate rvp-intrinsics.c. NFC (#230691)

This fixes cases that used RV32 and RV64 instead of the common CHECK.

This also fixes cases where a mix of CHECK and RV32/RV64 were used in
the same function. The script is unable to do this so they must have
been manually written. Manual checks place burden on future editors of
this file since they can't use the script output directly.
DeltaFile
+206-308clang/test/CodeGen/RISCV/rvp-intrinsics.c
+206-3081 files

LLVM/project 9c67f5a — llvm/test/CodeGen/RISCV rv32p.ll rv64p.ll

[RISCV][P-ext] Move scalar mulh intrinsic tests to rv32p.ll and rv64p.ll. NFC (#230716)

These were in a file with simd in its name, but they aren't simd.

Assisted-by: Claude
DeltaFile
+4-96llvm/test/CodeGen/RISCV/rvp-simd-32.ll
+56-0llvm/test/CodeGen/RISCV/rv64p.ll
+54-0llvm/test/CodeGen/RISCV/rv32p.ll
+114-963 files