about summary refs log tree commit diff
path: root/tests/codegen/issues
AgeCommit message (Collapse)AuthorLines
2024-07-14reenable some windows testsklensy-1/+0
2024-07-12Auto merge of #123351 - beetrees:x86-ret-snan-rust, r=nikic,workingjubileebors-2/+8
Ensure floats are returned losslessly by the Rust ABI on 32-bit x86 Solves #115567 for the (default) `"Rust"` ABI. When compiling for 32-bit x86, this PR changes the `"Rust"` ABI to return floats indirectly instead of in x87 registers (with the exception of single `f32`s, which this PR returns in general purpose registers as they are small enough to fit in one). No change is made to the `"C"` ABI as that ABI requires x87 register usage and therefore will need a different solution.
2024-07-12Adjust tests for x86 "Rust" ABI changesbeetrees-2/+8
2024-06-19Give inlining bonuses to things that optimize outScott McMurray-1/+5
2024-06-14Auto merge of #125347 - tesuji:needtests, r=nikicbors-0/+176
Add codegen tests for E-needs-test close #36010 close #68667 close #74938 close #83585 close #93036 close #109328 close #110797 close #111508 close #112509 close #113757 close #120440 close #118392 close #71096 r? nikic
2024-06-11Make issue-122805.rs big endian compatibleNikita Popov-9/+12
Instead of not generating the function at all on big endian (which makes the CHECK lines fail), instead use to_le() on big endian, so that we essentially perform a bswap for both endiannesses.
2024-06-11Fix tests for 32 bits targetsLzu Tao-4/+4
2024-06-09Apply suggestions from code reviewLzu Tao-41/+25
Co-authored-by: Nikita Popov <github@npopov.com>
2024-06-09add codegen test for #36010Lzu Tao-0/+29
2024-06-09add codegen test for #68667Lzu Tao-0/+17
2024-06-09add codegen test for #74938Lzu Tao-0/+15
2024-06-09add codegen test for #93036Lzu Tao-0/+18
2024-06-09add codegen test for #109328Lzu Tao-0/+17
2024-06-09add codegen test for #110797Lzu Tao-0/+27
2024-06-09Add codegen test for #111508Lzu Tao-0/+22
2024-06-09add codegen test for #112509Lzu Tao-0/+17
2024-06-09add codegen test for #113757Lzu Tao-0/+19
2024-06-09add codegen test for issue-118392, 71096Lzu Tao-0/+11
2024-05-31Run rustfmt on `tests/codegen/`.Nicholas Nethercote-89/+58
Except for `simd-intrinsic/`, which has a lot of files containing multiple types like `u8x64` which really are better when hand-formatted. There is a surprising amount of two-space indenting in this directory. Non-trivial changes: - `rustfmt::skip` needed in `debug-column.rs` to preserve meaning of the test. - `rustfmt::skip` used in a few places where hand-formatting read more nicely: `enum/enum-match.rs` - Line number adjustments needed for the expected output of `debug-column.rs` and `coroutine-debug.rs`.
2024-05-28Make more of the test suite run on Mac CatalystMads Marquart-1/+1
This adds the `only-apple`/`ignore-apple` compiletest directive, and uses that basically everywhere instead of `only-macos`/`ignore-macos`. Some of the updates in `run-make` are a bit redundant, as they use `ignore-cross-compile` and won't run on iOS - but using Apple in these is still more correct, so I've made that change anyhow.
2024-04-24Fix tests and blessGary Guo-1/+0
2024-04-24Auto merge of #122053 - erikdesjardins:alloca, r=nikicbors-2/+2
Stop using LLVM struct types for alloca The alloca type has no semantic meaning, only the size (and alignment, but we specify it explicitly) matter. Using `[N x i8]` is a more direct way to specify that we want `N` bytes, and avoids relying on LLVM's struct layout. It is likely that a future LLVM version will change to an untyped alloca representation. Split out from #121577. r? `@ghost`
2024-04-22Stabilize generic `NonZero`.Markus Reiter-1/+0
2024-04-12remove alloca type from issue-105386-ub-in-debuginfoErik Desjardins-1/+1
It's irrelevant for the purposes of this test (there is only one alloca) and its size changes depending on the target, so it can't be matched easily.
2024-04-11use [N x i8] for alloca typesErik Desjardins-2/+2
2024-04-10Update 122805 test for PR 123185Scott McMurray-10/+29
2024-04-08Limited to little endian targetKai Luo-0/+1
2024-04-07Add the test case for #122805DianQK-0/+35
2024-03-17Update the minimum external LLVM to 17Josh Stone-1/+0
2024-02-27test merging of multiple match branches that access fields of the same offsetErik Desjardins-0/+44
2024-02-26always use gep inbounds i8 (ptradd) for field offsetsErik Desjardins-2/+2
2024-02-26Auto merge of #121516 - RalfJung:platform-intrinsics-begone, r=oli-obkbors-2/+2
remove platform-intrinsics ABI; make SIMD intrinsics be regular intrinsics `@Amanieu` `@workingjubilee` I don't think there is any reason these need to be "special"? The [original RFC](https://rust-lang.github.io/rfcs/1199-simd-infrastructure.html) indicated eventually making them stable, but I think that is no longer the plan, so seems to me like we can clean this up a bit. Blocked on https://github.com/rust-lang/stdarch/pull/1538, https://github.com/rust-lang/rust/pull/121542.
2024-02-25Use generic `NonZero` in tests.Markus Reiter-11/+11
2024-02-25fix use of platform_intrinsics in testsRalf Jung-2/+2
2024-02-23Ignore less tests in debug buildsBen Kimock-12/+0
2024-02-22[AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives许杰友 Jieyou Xu (Joe)-74/+74
2024-01-23Remove uses of no-system-llvmNikita Popov-3/+0
It looks like none of these are actually needed.
2024-01-06Add assume into `NonZeroIntX::get`AngelicosPhosphoros-0/+83
LLVM currently don't support range metadata for function arguments so it fails to optimize non zero integers using their invariant if they are provided using by-value function arguments. Related to https://github.com/rust-lang/rust/issues/119422 Related to https://github.com/llvm/llvm-project/issues/76628 Related to https://github.com/rust-lang/rust/issues/49572
2023-12-11add more niches to rawvecThe 8472-8/+20
2023-12-04use `assume(idx < self.len())` in `[T]::get_unchecked`bendn-0/+13
2023-11-21Update the minimum external LLVM to 16.Dario Nieuwenhuis-8/+0
2023-09-21adjust how closure/generator types and rvalues are printedRalf Jung-2/+2
2023-09-06Address feedbackDavid Koloski-8/+4
2023-09-06Add regression test for LLVM 17-rc3 miscompileDavid Koloski-0/+50
See #115385 for more details.
2023-08-15Cherry-pick test for issue #114312DianQK-0/+27
2023-07-27CHECK only for opaque ptrJosh Stone-14/+14
2023-07-27Update the minimum external LLVM to 15Josh Stone-8/+2
2023-06-11cg_llvm: use index-based loop in write_operand_repeatedlyErik Desjardins-0/+12
This is easier for LLVM to analyze.
2023-06-03Rollup merge of #111878 - ferrocene:pa-codegen-tests, r=Mark-SimulacrumMatthias Krüger-2/+2
Fix codegen test suite for bare-metal-like targets For Ferrocene I needed to run the test suite for custom target with no unwinding and static relocation. Running the tests uncovered ~20 failures due to the test suite not accounting for these options. This PR fixes them by: * Fixing `CHECK`s to account for functions having extra LLVM IR attributes (in this case `nounwind`). * Fixing `CHECK`s to account for the `dso_local` LLVM IR modifier, which is [added to every item when relocation is static](https://github.com/rust-lang/rust/blob/f3d597b31c0f101a02c230798afa31a36bdacbc6/compiler/rustc_codegen_llvm/src/mono_item.rs#L139-L142). * Fixing `CHECK`s to account for missing `uwtables` attributes. * Added the `needs-unwind` attributes for tests that are designed to check unwinding. There is no part of Rust CI that checks this unfortunately, and testing whether the PR works locally is kinda hard because you need a target with std enabled but no unwinding and static relocations. Still, this works in my local testing, and if future PRs accidentally break this Ferrocene will take care of sending followup PRs.
2023-05-31Enable ScalarReplacementOfAggregatesBen Kimock-3/+4