Open Issues Need Help
View All on GitHubThe LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: This GitHub issue reports that the `_mm_setr_ph` intrinsic, used for half-float vectors, fails to compile when passed an expanded C++ parameter pack. This is because, unlike similar intrinsics for other data types, `_mm_setr_ph` is defined as a macro, which prevents the parameter pack from being correctly expanded before being passed to the macro. A workaround using a lambda to explicitly unpack the parameters is provided, and the issue suggests changing `_mm_setr_ph` and related intrinsics to functions, aligning with GCC's implementation.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: This GitHub issue proposes enabling `constexpr` support for a set of X86 shuffle intrinsics, specifically those related to `PSHUFD`, `PSHUFLW`, and `PSHUFW`. This involves implementing their behavior within Clang's `constexpr` evaluation engine by modifying `VectorExprEvaluator::VisitCallExpr` and `InterpretBuiltin`, and adding tests for various shuffle masks.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: This GitHub issue proposes enabling several X86 PSHUFB byte shuffle intrinsics (e.g., `_mm_shuffle_epi8` and its masked variants across different vector sizes) for use within `constexpr` contexts. This will require implementing their constant evaluation logic in `VectorExprEvaluator::VisitCallExpr / InterpretBuiltin` and adding tests for a range of shuffle masks.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: This issue aims to enable two specific AVX512F `mullox` intrinsics, `_mm512_mullox_epi64` and `_mm512_mask_mullox_epi64`, for use within `constexpr` contexts. It appears to be a minor omission from a previous pull request, #155411, suggesting a straightforward fix.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: This issue addresses a limitation where ARMISD VORRIMM and VBICIMM bitlogic opcodes cannot create poison or undef values. The proposed solution involves overriding `ARMTargetLowering::canCreateUndefOrPoisonForTargetNode` to correctly handle these opcodes and adding `FREEZE` test coverage to existing ARM SelectionDAG tests.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: This issue requests that a specific set of X86 vector zero-padding intrinsics, such as `_mm256_zextpd128_pd256` and `_mm512_zextsi256_si512`, be made available for use within `constexpr` contexts. This would involve updating their definitions in Clang's X86 header files to allow compile-time evaluation.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: This GitHub issue proposes enabling AVX512 masked blend intrinsics to be used in `constexpr` contexts. This change is now feasible because a prerequisite pull request (#152321) has already been merged. The task involves updating numerous specific `_mm_mask_blend_` intrinsics across different data types and vector sizes to support `constexpr` evaluation.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves replacing the F16C intrinsics `__builtin_ia32_vcvtph2ps/256` in Clang's X86 backend with a combination of `__builtin_shufflevector` and `__builtin_convertvector` for improved efficiency and code simplification. This change aims to streamline the `EmitX86CvtF16ToFloatExpr` function by reducing the number of argument variations.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves modifying the LLVM compiler infrastructure to allow the use of AVX2/AVX512 broadcast intrinsics within constexpr contexts. This requires understanding LLVM's internal representation and potentially modifying existing code to support these intrinsics in constant expressions, referencing a similar pull request for guidance.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves extending the Clang compiler's constexpr support to handle a set of x86 built-in functions related to vector selection. This requires modifying the `VectorExprEvaluator::VisitCallExpr` function to correctly evaluate these built-ins at compile time, leveraging existing code as a template. The goal is to enable constexpr evaluation of AVX512 predicated intrinsics.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves modifying the LLVM compiler infrastructure to allow the use of MMX/SSE2/AVX2/AVX512BW integer saturated arithmetic intrinsics within constexpr contexts. This requires leveraging existing `__builtin_elementwise_add_sat/sub_sat` functions and ensuring proper saturation behavior for various constants. Reference pull request #152296 can be used as a guide.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves modifying the LLVM headers to allow the use of SSE41, AVX2, AVX512F, and AVX512BW integer extension intrinsics within constexpr contexts. This requires leveraging existing `__builtin_convertvector` and `__builtin_shufflevector` functionality, potentially referencing a previous issue (#152288) for guidance. The goal is to extend the constexpr capabilities of these intrinsics.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves removing redundant built-in functions (__builtin_ia32_vfmaddps/d/h/bf16) in the Clang compiler's X86 backend, replacing them with the more generic __builtin_elementwise_fma. A potential extension is to also remove the older FMA4 intrinsics (__builtin_ia32_vfmaddss/d). This requires understanding the Clang codebase, specifically the X86 instruction emission and intrinsic handling.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves extending the LLVM compiler infrastructure to allow the use of AVX/AVX512 floating-point intrinsics (add, subtract, multiply, divide, unpack) within constexpr contexts. This builds upon existing support for SSE intrinsics and requires implementing similar functionality for the specified AVX instructions, excluding masked variants for now. Reference to a previous issue (#152305) is provided for guidance.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves modifying the LLVM project to allow AVX512 integer reduction intrinsics to be used within constexpr contexts. This requires leveraging existing builtin reduction intrinsics and potentially referencing a similar pull request (PR #152305) for guidance. The goal is to enhance the compiler's ability to perform constant-time calculations using these advanced vector instructions.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves modifying the LLVM compiler infrastructure to allow the use of AVX512 intrinsics (specifically, the _mm512_set* family) within constexpr contexts. This requires updating the compiler's handling of these intrinsics to support compile-time evaluation.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves extending the Clang compiler's VectorExprEvaluator to handle constexpr calls to the `__builtin_elementwise_abs` function, initially for integer types and potentially for floating-point types as well. This requires modifying the existing `VisitCallExpr` method to recognize and process this specific builtin function for vector expressions.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves enhancing the Clang compiler's `VectorExprEvaluator::VisitCallExpr` function to handle integer versions of the `__builtin_elementwise_max` and `__builtin_elementwise_min` functions at compile time (constexpr). The initial focus is on integer support, with floating-point handling potentially addressed later.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves extending the LLVM SelectionDAG's `canCreateUndefOrPoison` function to handle saturated truncation operations (ISD::TRUNCATE_SSAT_S, TRUNCATE_SSAT_U, TRUNCATE_USAT_U). This requires adding support for these instructions and writing corresponding unit tests to ensure correctness.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves adding support for ISD::FP_EXTEND in the SelectionDAG::canCreateUndefOrPoison function within the LLVM compiler infrastructure and writing corresponding unit tests to ensure the functionality works correctly. This is part of the LLVM project, a large-scale compiler project.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves extending the LLVM SelectionDAG's `canCreateUndefOrPoison` function to handle the `ISD::FABS` instruction and adding corresponding unit tests to ensure the functionality works correctly. This requires familiarity with LLVM's internal representation (IR) and SelectionDAG optimization pass.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves adding support for the `__has_feature(cfi)` preprocessor macro to the LLVM compiler, enabling consistent feature checking similar to other sanitizers. This ensures that code using Control Flow Integrity (CFI) features can be conditionally compiled based on the availability of CFI support in the compiler.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task is to fix an English grammar error ('a not a') in a Fortran compiler's error message generated by the Flang compiler (part of the LLVM project). This involves analyzing the provided Fortran code, understanding the compiler's error, and correcting the wording in the error message to improve clarity and readability.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: Correct a typo in the ClangFormatStyleOptions.rst documentation file and the corresponding Format.h header file. The typo is "does not implies" which should be corrected to "does not imply".
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: Update the TOSA dialect's definition of scalar int8 tensors to allow them to be either ranked or unranked. This involves modifying the Tosa_ScalarInt8Tensor tablegen definition and adding corresponding tests to ensure the change functions correctly. Reference pull requests are provided as examples.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves debugging a Python script (`update_llc_test_checks.py`) used to regenerate test checks for the LLVM compiler. The script is failing for the `armv7-apple-darwin` triple, preventing successful test regeneration for files like `fcopysign.ll`. The solution likely requires investigating why the script's interaction with the `armv7-apple-darwin` target has broken and correcting the issue, potentially involving updates to the script or the LLVM build environment.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves reviewing and potentially fixing a bug in the LLVM compiler's DAG combiner. The bug, introduced in a previous commit, relates to missing freeze operations in the `combineVSelectWithAllOnesOrZeros` function, specifically when folding `select` instructions. This requires analyzing existing code, understanding the implications of the missing freeze, and potentially adding the necessary freeze operations to ensure correct behavior. Verification of the fix across multiple folds is also needed.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: Implement support for the `moduleId` field in the stackTrace response of the lldb-dap (LLDB Debug Adapter Protocol) component within the LLVM project. This involves modifying the LLDB debugger to include the module ID in the data it sends when responding to stack trace requests.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves investigating a false positive warning from the Clang static analyzer regarding placement new and array allocation. It requires analyzing the Clang source code, understanding the C++ standard's rules on placement new, and potentially debugging or improving the analyzer's logic to correctly handle this edge case. The goal is to determine if the warning is indeed a false positive due to a misunderstanding of the standard or if there's a genuine bug in the code being analyzed.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: Improve the diagnostic message for an export declaration error in the LLVM C++ compiler. The current message is inaccurate; it should specify that the declaration must be within a module interface, not just a module purview. The task involves modifying the compiler's error reporting to reflect this correction.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: Implement full support for the MSVC pragma `init_seg(section-specifier, func-name)` in the LLVM Clang compiler. This involves handling the function name specification, allowing a custom function to be called instead of `atexit` for global object destruction, and potentially integrating with existing `atexit` functionality.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves extending the LLVM AArch64 backend's `computeKnownBitsForTargetNode` function to handle additional instruction types (AArch64ISD::MOVIshift, AArch64ISD::MOVIedit, AArch64ISD::MOVImsl, AArch64ISD::MVNIshift, AArch64ISD::MVNImsl) beyond the currently supported AArch64ISD::MOVI. This improvement will enhance the compiler's ability to perform optimizations by enabling better value tracking and constant folding.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: Update the ClangTools.html documentation to include a list of extra Clang tools, such as clangd and clang-doc, currently missing from the page but listed on the extra tools index page. This involves adding these tools to the existing documentation, ensuring consistent formatting and linking to relevant resources.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: The task involves extending the LLVM SelectionDAG's `canCreateUndefOrPoison` function to handle ISD::FMA and ISD::FMAD fused multiply-add instructions. This requires modifying the existing function to include these new instructions and creating corresponding unit tests to ensure the changes work correctly.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
AI Summary: Implement JSON output for the `llvm-dwarfdump` command, mirroring the existing functionality in `llvm-readelf/obj` to improve ease of parsing debug information.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.