-
Notifications
You must be signed in to change notification settings - Fork 803
LLVM and SPIRV-LLVM-Translator pulldown (WW52 2025) #20968
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
iclsrc
wants to merge
1,804
commits into
sycl
Choose a base branch
from
llvmspirv_pulldown
base: sycl
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This seems the standard way to get the path to such tools within LLVM. Calling findBuiltClang() has some annoying behavior like falling back to CC when it cannot find anything else, which might point to anything or not even be set. We noticed this with our internal build system as the lli binary is not in the same path as the clang binary.
…n popen.cpp (#171622) This test has begun failing on iossim with 'sh: sort: command not found' in the stderr. I believe this may be due to the change to the lit internal shell not having 'sort' in it's path. This patch adds the full path /usr/bin/sort to work around this.
…n NVVMDialect.cpp (NFC)
…1579) Assign output sections for injected functions explicitly, and don't reassign in AssignSections pass. This change is a prerequisite for further PRs where veneer functions are created as injected functions and their code section depends on their placement.
…639) Besides simplifying the code, this refactor should also make it more efficient: instead of using the `hasAnySubstatement` matcher to find blocks we're interested in, which requires looking through every substatement, this PR introduces a custom `hasFinalStmt` matcher which only checks the last substatement.
This PR adds support for treating WTF::move like std::move in various WebKit checkers.
Add support for the ExpressionTraitExpr
CONFLICT (content): Merge conflict in clang/lib/Driver/ToolChains/HIPAMD.cpp
…… (#171647) …pt (#169559)" This reverts commit 4da31b6.
This obsoletes the FIXME in #85686, but it doesn't address the issue where moves from CCR will still be emitted on 68000. However, all such moves will now be emitted as physreg copies, and the issue can thus be handled there in a followup change.
CONFLICT (modify/delete): .github/workflows/bazel-checks.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/bazel-checks.yml left in tree. CONFLICT (modify/delete): .github/workflows/build-ci-container-tooling.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/build-ci-container-tooling.yml left in tree. CONFLICT (modify/delete): .github/workflows/build-ci-container-windows.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/build-ci-container-windows.yml left in tree. CONFLICT (modify/delete): .github/workflows/build-ci-container.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/build-ci-container.yml left in tree. CONFLICT (modify/delete): .github/workflows/build-metrics-container.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/build-metrics-container.yml left in tree. CONFLICT (modify/delete): .github/workflows/check-ci.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/check-ci.yml left in tree. CONFLICT (modify/delete): .github/workflows/ci-post-commit-analyzer.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/ci-post-commit-analyzer.yml left in tree. CONFLICT (modify/delete): .github/workflows/commit-access-greeter.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/commit-access-greeter.yml left in tree. CONFLICT (modify/delete): .github/workflows/commit-access-review.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/commit-access-review.yml left in tree. CONFLICT (modify/delete): .github/workflows/docs.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/docs.yml left in tree. CONFLICT (content): Merge conflict in .github/workflows/email-check.yaml CONFLICT (modify/delete): .github/workflows/gha-codeql.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/gha-codeql.yml left in tree. CONFLICT (modify/delete): .github/workflows/hlsl-test-all.yaml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/hlsl-test-all.yaml left in tree. CONFLICT (modify/delete): .github/workflows/issue-release-workflow.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/issue-release-workflow.yml left in tree. CONFLICT (modify/delete): .github/workflows/issue-subscriber.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/issue-subscriber.yml left in tree. CONFLICT (modify/delete): .github/workflows/issue-write.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/issue-write.yml left in tree. CONFLICT (modify/delete): .github/workflows/libc-fullbuild-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libc-fullbuild-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/libc-overlay-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libc-overlay-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/libclang-abi-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libclang-abi-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/libclang-python-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libclang-python-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/libcxx-build-and-test.yaml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libcxx-build-and-test.yaml left in tree. CONFLICT (modify/delete): .github/workflows/libcxx-build-containers.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libcxx-build-containers.yml left in tree. CONFLICT (modify/delete): .github/workflows/libcxx-check-generated-files.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libcxx-check-generated-files.yml left in tree. CONFLICT (modify/delete): .github/workflows/libcxx-run-benchmarks.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libcxx-run-benchmarks.yml left in tree. CONFLICT (modify/delete): .github/workflows/llvm-abi-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/llvm-abi-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/merged-prs.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/merged-prs.yml left in tree. CONFLICT (modify/delete): .github/workflows/mlir-spirv-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/mlir-spirv-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/new-prs.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/new-prs.yml left in tree. CONFLICT (content): Merge conflict in .github/workflows/pr-code-format.yml CONFLICT (modify/delete): .github/workflows/pr-code-lint.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/pr-code-lint.yml left in tree. CONFLICT (modify/delete): .github/workflows/pr-request-release-note.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/pr-request-release-note.yml left in tree. CONFLICT (modify/delete): .github/workflows/pr-subscriber.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/pr-subscriber.yml left in tree. CONFLICT (modify/delete): .github/workflows/premerge.yaml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/premerge.yaml left in tree. CONFLICT (modify/delete): .github/workflows/release-asset-audit.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-asset-audit.yml left in tree. CONFLICT (modify/delete): .github/workflows/release-binaries.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-binaries.yml left in tree. CONFLICT (modify/delete): .github/workflows/release-documentation.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-documentation.yml left in tree. CONFLICT (modify/delete): .github/workflows/release-doxygen.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-doxygen.yml left in tree. CONFLICT (modify/delete): .github/workflows/release-lit.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-lit.yml left in tree. CONFLICT (modify/delete): .github/workflows/release-sources.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-sources.yml left in tree. CONFLICT (modify/delete): .github/workflows/release-tasks.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-tasks.yml left in tree. CONFLICT (content): Merge conflict in .github/workflows/scorecard.yml CONFLICT (modify/delete): .github/workflows/spirv-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/spirv-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/test-unprivileged-download-artifact.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/test-unprivileged-download-artifact.yml left in tree. CONFLICT (modify/delete): .github/workflows/version-check.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/version-check.yml left in tree.
/usr/bin/ld: tools/clang/unittests/Analysis/Scalable/CMakeFiles/ClangSca lableAnalysisFrameworkTests.dir/ASTEntityMappingTest.cpp.o: undefined re ference to symbol '_ZN5clang7ASTUnitD1Ev
…167754) This adjusts the behavior of running dap_server.py directly to better support the current state of development. A few parts of the 'main' body were stale and not functional. These improvements include: * Instead of the custom tracefile / replay file parsing logic, I adjusted the replay helper to handle parsing lldb-dap log files created with the `LLDBDAP_LOG` env variable, allowing you to more easily run a failing test like: `python3 lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py --adapter lldb-dap -r lldb-test-build.noindex/tools/lldb-dap/console/TestDAP_console.test_custom_escape_prefix/dap.txt` * Migrated argument parsing to `argparse`, that is in all verisons of py3+ and has a few improvements over `optparse`. * Corrected the existing arguments and updated `run_vscode` > `run_adapter`. You can use this for simple debugging like: `xcrun python3 lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py --adapter=lldb-dap --adapter-arg='--pre-init-command' --adapter-arg 'help' --program a.out --init-command 'help'`
Adds a flag COMPILER_RT_PROFILE_BAREMETAL, which disables the parts of the profile runtime which require a filesystem or malloc. This minimal library only requires string.h from the C library. This is useful for profiling or code coverage of baremetal images, which don't have filesystem APIs, and might not have malloc configured (or have limited heap space). Expected usage: - Add code to your project to call `__llvm_profile_get_size_for_buffer()` and `__llvm_profile_write_buffer()` to write the profile data to a buffer in memory, and then copy that data off the device using target-specific tools. - If you're using a linker script, set up your linker script to map the profiling and coverage input sections to corresponding output sections with the same name, and mark them KEEP. `__llvm_covfun` and `__llvm_covmap` are non-allocatable, `__llvm_prf_names` is read-only allocatable, and `__llvm_prf_cnts` and `__llvm_prf_data` are read-write allocatable. - The resulting data is in same format as the non-baremetal profiles. There's some room for improvement here in the future for doing profiling and code coverage for baremetal. If we revised the profiling format, and introduced some additional host tooling, we could move some of the metadata into non-allocated sections, and construct the profraw file on the host. But this patch is sufficient for some use-cases.
Use the same twiden format for PseudoSF_VSETTM and PseudoSF_VSETTK as other XSfmm pseudos. Though I don't think we use the operand from these instructions.
… peelToTurnInvariantLoadsDereferenceable. (#171547) llvm.assume intrinsics have the mayWriteToMemory property, but won't prevent the load from becoming dereferenceable.
Add documentation for variadic `isa<>` in the LLVM Programmer's Manual.
…ge (#171705) As it is done in `flang-rt/lib/runtime/edit-input.cpp`, emit a runtime error message when trying to raise IEEE exception on the device. `MapException` and `feraiseexcept` are used in the lowering of the nearest intrinsic even on the device.
…utable in popen.cpp" (#171706) Reverts llvm/llvm-project#171622 Co-authored-by: Andrew Haberlandt <[email protected]>
Previously we would hit an assertion failure when a relocation represented by a PAuth ifunc required a GOT and the addend of a relocation did not fit into the immediate operand of an ADD instruction. Fix it by extracting a function for materializing arbitrary addends and using it to materialize the addend. Reviewers: fmayer, hvdijk Pull Request: llvm/llvm-project#171707
Previously we would assert when a ValueTypeByHwMode was missing a case for the current mode, now we report an error instead. Interestingly this error only ocurrs when the DAG patterns use RegClassByHwMode, but not normal RegisterClass instances. Found while I added RegClassByHwMode to RISC-V and was getting an assertion due to `XLenFVT`/`XLenVecI32VT` not having an entry for the default mode. Reviewed By: arsenm Pull Request: llvm/llvm-project#171254
Previously, we were emitting a broken AliasPatternCond array, outputting `MyTarget::RegClassByHwModeRegClassID` which does not exist. Instead, we now add a new predicate and pass the RegClassByHwMode index as the value argument. Pull Request: llvm/llvm-project#171264
Reviewers: jvoung Reviewed By: jvoung Pull Request: llvm/llvm-project#170947
printFlags takes care of inserting the correct amount of spaces, depending on whether there are flags to print or not.
This pass implements the OpenACC loop tiling transformation for acc.loop
operations that have the tile clause (OpenACC 3.4 spec, section 2.9.8).
The tile clause specifies that the iterations of the associated loops
should be divided into tiles (rectangular blocks). The pass transforms a
single or nested acc.loop with tile clauses into a structure of "tile
loops" (iterating over tiles) containing "element loops" (iterating
within tiles).
For example, tiling a 2-level nested loop with tile(T1, T2):
```
// Before tiling:
acc.loop tile(T1, T2) control(%i, %j) = ...
// After tiling:
acc.loop control(%i) step (s1*T1) { // tile loop 1
acc.loop control(%j) step (s2*T2) { // tile loop 2
acc.loop control(%ii) = (%i) to (min(ub1, %i+s1*T1)) {
acc.loop control(%jj) = (%j) to (min(ub2, %j+s2*T2)) {
// loop body using %ii, %jj
}
}
}
}
```
Key features:
- Handles constant tile sizes and wildcard tile sizes ('*') which use a
configurable default tile size
- Properly handles collapsed loops with tile counts exceeding collapse
count by uncollapsing loops before tiling
- Distributes gang/worker/vector attributes appropriately: gang -> tile
loops, vector -> element loops
- Validates that tile size types are not wider than loop IV types
- Emits optimization remarks for tiling decisions
Three test files are added:
- acc-loop-tiling.mlir: Tests single and nested loop tiling with
constant tile sizes, unknown tile sizes (*), and loops with collapse
attributes
- acc-loop-tiling-invalid.mlir: Tests error diagnostic when tile size
type is wider than the loop IV type
- acc-loop-tiling-remarks.mlir: Tests optimization remarks emitted for
tiling decisions including default tile size selection
Co-authored-by: Vijay Kandiah <[email protected]>
Reviewers: jvoung Reviewed By: jvoung Pull Request: llvm/llvm-project#170950
llvm/llvm-project#169131 Should fix: ASTEntityMappingTest.cpp.o: undefined reference to symbol '_ZN4llvm3omp27isAllowedClauseForDirectiveENS0_9DirectiveENS0_6ClauseEj' https://lab.llvm.org/buildbot/#/builders/10/builds/18851
…ta clauses (#171445) `gatherDataOperandAddrAndBounds` did not handle pointers and allocatable pointer components (`obj%p`) in the same way as pointer and allocatable whole objects (`p`). The difference is that whole object are kept as a descriptor address (`fir.ref<fir.box>`) in the acc data operation while components were dereferenced (`fir.box<>`). I do not think this was intentional, and is mainly a side effect of the `genExprAddr` for components that generate a dereference for pointer/allocatables. In the work that I am doing on remapping components, this is an issue because the data operation must return a fir.ref<fir.box> so that I can remap any appearance to the component to it (which could be in a pointer association statement for instance, requiring access to a descriptor address as opposed to a value).
…168565) Both `LOOP_DEPENDENCE_WAR_MASK` and `LOOP_DEPENDENCE_RAW_MASK` are currently hard to split correctly, and there are a number of incorrect cases. The difficulty comes from how the intrinsics are defined. For example, take `LOOP_DEPENDENCE_WAR_MASK`. It is defined as the OR of: * `(ptrB - ptrA) <= 0` * `elementSize * lane < (ptrB - ptrA)` Now, if we want to split a loop dependence mask for the high half of the mask we want to compute: * `(ptrB - ptrA) <= 0` * `elementSize * (lane + LoVT.getElementCount()) < (ptrB - ptrA)` However, with the current opcode definitions, we can only modify ptrA or ptrB, which may change the result of the first case, which should be invariant to the lane. This patch resolves these cases by adding a "lane offset" to the ISD opcodes. The lane offset is always a constant. For scalable masks, it is implicitly multiplied by vscale. This makes splitting trivial as we increment the lane offset by `LoVT.getElementCount()` now. Note: In the AArch64 backend, we only support zero lane offsets (as other cases are tricky to lower to whilewr/rw). --------- Co-authored-by: Benjamin Maxwell <[email protected]>
…inalg (#170622) The patch motivated by Tosa Conformance test negate_32x45x49_i16_full failure. TosaToLinalg pass has an optimization to transfer Tosa Negate to Sub if the zero points are zeros. However, when the input value is minimum negative number, the transformation will cause the underflow. By removing the transformation, if zp = 0 it would do the promotion to avoid the underflow. Promotion types could be from int32 to int48. TOSA negate specification does not mention support for int48. Should we consider removing the promotion to int48 to stay aligned with the TOSA spec?
This reverts commit llvm/llvm-project@54a4da9. MSVC supports an extension allowing to delete an array of objects via pointer whose static type doesn't match its dynamic type. This is done via generation of special destructors - vector deleting destructors. MSVC's virtual tables always contain a pointer to the vector deleting destructor for classes with virtual destructors, so not having this extension implemented causes clang to generate code that is not compatible with the code generated by MSVC, because clang always puts a pointer to a scalar deleting destructor to the vtable. As a bonus the deletion of an array of polymorphic object will work just like it does with MSVC - no memory leaks and correct destructors are called. This patch will cause clang to emit code that is compatible with code produced by MSVC but not compatible with code produced with clang of older versions, so the new behavior can be disabled via passing -fclang-abi-compat=21 (or lower). Fixes llvm/llvm-project#19772
`[[nodiscard]]` should be applied to functions where discarding the return value is most likely a correctness issue. - https://libcxx.llvm.org/CodingGuidelines.html
… (#167551) This PR adds the cost model for the loop dependence mask intrinsics, both for cases where they must be expanded and when they can be lowered for AArch64. --------- Co-authored-by: Benjamin Maxwell <[email protected]>
…2517) This patch implements a workaround for a VSCode bug that causes it to send disassemble requests with empty memory reference. You can find more detailed description [here](microsoft/vscode#270361). I propose to allow empty memory reference and return invalid instructions when this occurs. Error log example: ``` 1759923554.517830610 (stdio) --> {"command":"disassemble","arguments":{"memoryReference":"","offset":0,"instructionOffset":-50,"instructionCount":50,"resolveSymbols":true},"type":"request","seq":3} 1759923554.518007517 (stdio) queued (command=disassemble seq=3) 1759923554.518254757 (stdio) <-- {"body":{"error":{"format":"invalid arguments for request 'disassemble': malformed memory reference at arguments.memoryReference\n{\n \"instructionCount\": 50,\n \"instructionOffset\": -50,\n \"memoryReference\": /* error: malformed memory reference */ \"\",\n \"offset\": 0,\n \"resolveSymbols\": true\n}","id":3,"showUser":true}},"command":"disassemble","request_seq":3,"seq":0,"success":false,"type":"response"} ``` I am not sure that we should add workaround here when bug on VSCode side, but I think this bug affects our users. WDYT?
…(#171501) OpenACC data clauses of structured constructs may contain component references (`obj%comp`, or `obj%array(i:j:k)`, ...). This changes allows using the ACC dialect data operation result for such clauses every time the component is referred to inside the scope of the construct. The bulk of the change is to add the ability to map `evaluate::Component` to mlir values in the symbol map used in lowering. This is done by adding the `ComponentMap` helper class to the lowering symbol map, and using it to override `evaluate::Component` reference lowering in expression lowering (ConvertExprToHLFIR.cpp). Some changes are made in Lower/Support/Utils.h in order to set-up/expose the hashing/equality helpers needed to use `evaluate::Component` in llvm::DenseMap. In OpenACC.cpp, `genPrivatizationRecipes` and `genDataOperandOperations` are merged to unify the processing of Designator in data clauses. New code is added to unwrap the rightmost `evaluate::Component`, if any, and remap it. Note that when the right most part is an array reference on a component (`obj%array(i:j:k)`), the whole component `obj%array(` is remapped, and the array reference is dealt with a bound operand like for whole object array. After this patch, all designators in data clauses on structured constructs will be remapped, except for array reference in private/first private/reduction (the result type of the related operation needs to be changed and the recipe adapted to "offset back"), component reference in reduction (this patch is adding a TODO for it), and device_ptr (previously bypassed remapping because of issues with descriptors, should be OK to lift it in a further patch). Note that this patch assumes that it is illegal to have code with intermediate variable indexing in the component reference (e.g. `array(i)%comp`) where the value of the index would be changed inside the region (e.g., `i` is assigned a new value), or where the component would be used with different indices meant to have the same value as the one used in the clause (e.g. `array(i)%comp` where `j` is meant to be the same as `i`). I will try to add a warning in semantics for such questionable/risky usages.
This offset is a signed int64_t which can take negative values.
It may be negative.
CONFLICT (content): Merge conflict in clang/lib/Driver/Driver.cpp
This reverts commit 3847648. Relands llvm/llvm-project#158043 which got auto-merged on a revision which wasn't approved. The only addition to the approved version was that we adjust how we set the time for failed tests. We used to just assign it the negative value of the elapsed time. But if the test failed with `0` seconds (which some of the new tests do), we would mark it `-0`. But the check for whether something failed checks for `time < 0`. That messed with the new `--filter-failed` option of this PR. This was only an issue on Windows CI, but presumably can happen on any platform. Happy to do this in a separate PR. ---- Original PR This patch adds a new --filter-failed option to llvm-lit, which when set, will only run the tests that have previously failed.
Missing headers were caught by windows build bots: - https://lab.llvm.org/buildbot/#/builders/222/builds/817/steps/6/logs/stdio - https://lab.llvm.org/buildbot/#/builders/207/builds/10970/steps/5/logs/stdio In #171501, I removed IterationSpace.h include from Utils.h, and IterationSpace.h was itself including SymbolMap.h and FIRBuilder.h that are required here.
Fix build error after enabling cl_ext_float_atomics in downstream target: opencl-c.h:13798:80: error: multi-line // comment [-Werror,-Wcomment] 13798 | #endif // defined(__opencl_c_ext_fp16_global_atomic_min_max) && \ Patch By: Jinsong Ji <[email protected]>
…ts (#3464) Signed-off-by: Sidorov, Dmitry <[email protected]> Original commit: KhronosGroup/SPIRV-LLVM-Translator@8435219cf40f09e
The extension adds support for the `OpFmaKHR` instruction, which provides a native SPIR-V instruction for fused multiply-add operations as an alternative to using OpenCL.std::Fma extended instruction. Translate both LLVM fma intrinsics as well as OCL builtins to `OpFmaKHR` if the extension is available. Specification: https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_fma.html Original commit: KhronosGroup/SPIRV-LLVM-Translator@199d2e027d650a5
ca05eb0 to
3ab7444
Compare
Contributor
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
zizmor found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
LLVM: llvm/llvm-project@b123b70
SPIRV-LLVM-Translator: KhronosGroup/SPIRV-LLVM-Translator@199d2e027d650a5