rust/tests/codegen
bors bb8b11e67d Auto merge of #120718 - saethlin:reasonable-fast-math, r=nnethercote
Add "algebraic" fast-math intrinsics, based on fast-math ops that cannot return poison

Setting all of LLVM's fast-math flags makes our fast-math intrinsics very dangerous, because some inputs are UB. This set of flags permits common algebraic transformations, but according to the [LangRef](https://llvm.org/docs/LangRef.html#fastmath), only the flags `nnan` (no nans) and `ninf` (no infs) can produce poison.

And this uses the algebraic float ops to fix https://github.com/rust-lang/rust/issues/120720

cc `@orlp`
2024-02-21 09:43:33 +00:00
..
auxiliary Also move the auxiliary file 2023-03-20 10:25:29 +00:00
avr CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
cffi Remove ffi_returns_twice feature 2024-01-30 22:09:09 +00:00
cross-crate-inlining Add -Zcross-crate-inline-threshold=yes 2023-11-07 18:45:11 -05:00
debug-accessibility Adapt debug-accessibility tests for msvc-style enums 2023-12-15 11:45:03 +00:00
dllimports Add more codegen tests 2023-01-17 16:23:22 +01:00
enum tests/codegen/enum-* -> enum/enum-* 2023-07-29 18:34:41 -07:00
instrument-xray Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
intrinsics Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
issues Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
lib-optimizations restrict test to x86-64 2023-09-02 13:42:58 +02:00
loongarch-abi tests: Fix tests for LoongArch64 2023-08-18 14:56:53 +08:00
macos Raise minimum supported macOS to 10.12 2023-09-23 19:14:25 -05:00
naked-fn tests/codegen/naked-* -> naked-fn/naked-* 2023-07-29 18:34:41 -07:00
non-terminate Move /src/test to /tests 2023-01-11 09:32:08 +00:00
remap_path_prefix Give the cross-crate generic some work to do 2023-04-07 15:46:45 -04:00
repr add support for rustc_abi(assert_eq) and use it to test some repr(transparent) cases 2023-09-07 09:14:29 +02:00
riscv-abi CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
sanitizer CFI: Add char to CFI integer normalization 2023-12-07 11:28:16 -08:00
simd Add "algebraic" versions of the fast-math intrinsics 2024-02-20 12:39:03 -05:00
simd-intrinsic Fix alignment passed down to LLVM for simd_masked_load 2023-12-12 13:11:59 +01:00
src-hash-algorithm Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
unwind-abis stabilize abi_thiscall 2023-08-07 14:11:03 +02:00
aarch64-struct-align-128.rs aarch64-linux: properly handle 128bit aligned aggregates 2023-07-10 19:19:40 -04:00
abi-efiapi.rs Stabilize abi_efiapi feature 2023-01-11 20:42:13 -05:00
abi-main-signature-16bit-c-int.rs Replace ignore-everything with only-arch 2023-07-29 15:49:07 -07:00
abi-main-signature-32bit-c-int.rs llvm: Allow noundef in codegen tests 2024-01-02 18:02:17 +00:00
abi-repr-ext.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
abi-sysv64.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
abi-x86_64_sysv.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
abi-x86-interrupt.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
addr-of-mutate.rs Update the minimum external LLVM to 15 2023-07-27 14:07:08 -07:00
adjustments.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
align-byval-vector.rs implement vector-containing aggregate alignment for x86 darwin 2023-07-10 19:19:36 -04:00
align-byval.rs Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
align-enum.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
align-fn.rs Allow all associated functions and add test 2023-04-16 06:31:08 +00:00
align-offset.rs Update the minimum external LLVM to 15 2023-07-27 14:07:08 -07:00
align-struct.rs Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
alloc-optimisation.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
array-clone.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
array-codegen.rs Copy 1-element arrays as scalars, not vectors 2023-10-07 00:10:32 -07:00
array-equality.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
array-map.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
array-optimized.rs Copy 1-element arrays as scalars, not vectors 2023-10-07 00:10:32 -07:00
ascii-char.rs update test for new LLVM 18 codegen 2023-11-28 12:10:59 +00:00
asm-clobber_abi.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
asm-clobbers.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
asm-may_unwind.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
asm-maybe-uninit.rs Allow MaybeUninit in input and output of inline assembly 2023-08-23 21:57:18 +09:00
asm-multiple-options.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
asm-options.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
asm-powerpc-clobbers.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
asm-sanitize-llvm.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
asm-target-clobbers.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
async-closure-debug.rs Build DebugInfo for coroutine-closure 2024-02-09 16:01:29 +00:00
async-fn-debug-awaitee-field.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
async-fn-debug-msvc.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
async-fn-debug.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
atomic-operations.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
autovectorize-f32x4.rs Test from_fn autovectorizes 2023-05-30 20:45:40 -07:00
binary-search-index-no-bound-check.rs Stop checking for the absense of something that doesn't exist 2023-05-12 21:59:26 -07:00
bool-cmp.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
box-uninit-bytes.rs add regression test for not memcpying padding bytes 2023-08-22 15:10:56 +02:00
bpf-alu32.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
branch-protection.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
call-llvm-intrinsics.rs tests: Add tests for LoongArch64 2023-04-30 00:06:26 +08:00
call-metadata.rs codegen: allow extra attributes to functions when panic=abort 2023-05-23 16:54:30 +02:00
catch-unwind.rs tests: Add tests for LoongArch64 2023-04-30 00:06:26 +08:00
cdylib-external-inline-fns.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cf-protection.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cfguard-checks.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cfguard-disabled.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cfguard-nochecks.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cfguard-non-msvc.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
char-ascii-branchless.rs Refactor some char, u8 ascii functions to be branchless 2023-10-26 21:48:36 -04:00
codemodels.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coercions.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cold-call-declare-and-call.rs Use preserve_mostcc for extern "rust-cold" 2023-08-26 17:42:59 -07:00
comparison-operators-2-tuple.rs Remove an unneeded helper from the tuple library code 2023-11-25 22:25:00 -08:00
comparison-operators-newtype.rs Update the minimum external LLVM to 15 2023-07-27 14:07:08 -07:00
const_scalar_pair.rs Explain the reason for why a test exists 2023-05-31 14:07:16 +00:00
consts.rs Update the minimum external LLVM to 15 2023-07-27 14:07:08 -07:00
coroutine-debug-msvc.rs Rename lots of files that had generator in their name 2023-10-20 21:14:02 +00:00
coroutine-debug.rs Rename lots of files that had generator in their name 2023-10-20 21:14:02 +00:00
dealloc-no-unwind.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
debug-alignment.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
debug-column-msvc.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
debug-column.rs codegen: allow extra attributes to functions when panic=abort 2023-05-23 16:54:30 +02:00
debug-compile-unit-path.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
debug-fndef-size.rs Ignore MSVC in test. 2023-10-08 16:45:45 +00:00
debug-limited.rs More in-depth documentation for the new debuginfo options 2023-03-31 07:28:39 -04:00
debug-line-directives-only.rs More in-depth documentation for the new debuginfo options 2023-03-31 07:28:39 -04:00
debug-line-tables-only.rs More in-depth documentation for the new debuginfo options 2023-03-31 07:28:39 -04:00
debug-linkage-name.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
debug-vtable.rs Fix test 2023-05-11 14:35:10 +00:00
debuginfo-constant-locals.rs Turn on ConstDebugInfo pass. 2023-04-22 23:41:48 +02:00
debuginfo-generic-closure-env-names.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
debuginfo-inline-callsite-location.rs Split out option::unwrap_failed like we have result::unwrap_failed 2024-01-14 12:45:01 -08:00
deduced-param-attrs.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
default-hidden-visibility.rs Add unstable -Zdefault-hidden-visibility cmdline flag for rustc. 2023-12-13 21:14:23 +00:00
default-requires-uwtable.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
direct-access-external-data.rs Add unstable -Z direct-access-external-data cmdline flag for rustc 2024-01-16 19:15:06 +08:00
drop-in-place-noalias.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
drop.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
dst-vtable-align-nonzero.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
dst-vtable-size-range.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
ehcontguard_disabled.rs Add support for generating the EHCont section 2023-11-21 13:41:23 -08:00
ehcontguard_enabled.rs convert ehcont-guard to an unstable option 2023-11-21 14:24:23 -08:00
enable-lto-unit-splitting.rs Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
export-no-mangle.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
external-no-mangle-fns.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
external-no-mangle-statics.rs codegen: allow the dso_local attribute 2023-05-23 16:54:33 +02:00
fastcall-inreg.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
fatptr.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
fewer-names.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
float_math.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
fn-impl-trait-self.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
foo.s Move /src/test to /tests 2023-01-11 09:32:08 +00:00
force-frame-pointers.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
force-no-unwind-tables.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
force-unwind-tables.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
frame-pointer.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
function-arguments-noopt.rs Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
function-arguments.rs Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
function-return.rs Add -Zfunction-return={keep,thunk-extern} option 2023-11-30 20:21:31 +01:00
gdb_debug_script_load.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic-debug.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
global_asm_include.rs Replace ignore-everything with only-arch 2023-07-29 15:49:07 -07:00
global_asm_x2.rs Replace ignore-everything with only-arch 2023-07-29 15:49:07 -07:00
global_asm.rs Replace ignore-everything with only-arch 2023-07-29 15:49:07 -07:00
i128-x86-align.rs Directly use volatile_load intrinsic 2024-01-19 10:52:01 +01:00
infallible-unwrap-in-opt-z.rs adapt test for v0 symbol mangling 2024-01-24 14:57:21 +00:00
inherit_overflow.rs Replace legacy ConstProp by GVN. 2023-12-24 20:08:57 +00:00
inline-always-works-always.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
inline-debuginfo.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
inline-function-args-debug-info.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
inline-hint.rs Permit MIR inlining without #[inline] 2023-04-07 15:46:43 -04:00
instrument-coverage-off.rs coverage: Add UI tests for values accepted by -Cinstrument-coverage 2023-10-23 17:41:40 +11:00
instrument-coverage.rs coverage: Add UI tests for values accepted by -Cinstrument-coverage 2023-10-23 17:41:40 +11:00
instrument-mcount.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
integer-cmp.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
integer-overflow.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
internalize-closures.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
intrinsic-no-unnamed-attr.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
is_val_statically_known.rs Support safe intrinsics with fallback bodies 2024-02-12 17:55:36 +00:00
issue-97217.rs Limit to LLVM 17.0.2 to work around WinEH codegen bug 2023-10-02 11:06:38 +02:00
iter-repeat-n-trivial-drop.rs tests: LLVM 18 infers an extra noalias here 2024-02-13 10:33:40 +01:00
layout-size-checks.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
lifetime_start_end.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
link_section.rs codegen: allow the dso_local attribute 2023-05-23 16:54:33 +02:00
link-dead-code.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
llvm_module_flags.rs Add -Z llvm_module_flag 2023-11-11 19:48:47 -08:00
llvm-ident.rs Support .comment section like GCC/Clang (!llvm.ident) 2023-07-21 22:01:50 +02:00
loads.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
local-generics-in-exe-internalized.rs Permit MIR inlining without #[inline] 2023-04-07 15:46:43 -04:00
lto-removes-invokes.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
mainsubprogram.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
mainsubprogramstart.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
match-optimized.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
match-optimizes-away.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
match-unoptimized.rs Change src/test to tests in source files, fix tidy and tests 2023-01-11 09:32:13 +00:00
maybeuninit-rvo.rs Add codegen test for RVO on MaybeUninit 2024-01-03 21:18:07 +01:00
mem-replace-big-type.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
mem-replace-simple-type.rs Stop emitting non-power-of-two vectors in basic LLVM codegen 2023-08-25 20:06:57 -07:00
merge-functions.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
method-declaration.rs Add test for method debuginfo declaration. 2023-08-12 21:27:46 +08:00
mir_zst_stores.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
mir-inlined-line-numbers.rs codegen: allow extra attributes to functions when panic=abort 2023-05-23 16:54:30 +02:00
move-before-nocapture-ref-arg.rs add codegen test for #107436 2023-08-26 18:14:47 +09:00
move-operands.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
no_builtins-at-crate.rs Add the no-builtins attribute to functions when no_builtins is applied at the crate level. 2023-07-18 22:15:47 +08:00
no-assumes-on-casts.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
no-dllimport-w-cross-lang-lto.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
no-jump-tables.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
no-plt.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
noalias-box-off.rs make noalias-box-off filecheck more precise 2023-05-20 19:41:28 -04:00
noalias-box.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
noalias-flag.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
noalias-refcell.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
noalias-rwlockreadguard.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
noalias-unpin.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
noreturn-uninhabited.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
noreturnflag.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
nounwind.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
nrvo.rs Disable nrvo mir opt 2023-05-08 03:55:41 -07:00
optimize-attr-1.rs typos 2023-04-17 09:16:07 +02:00
option-as-slice.rs ci: add a runner for vanilla LLVM 16 2023-04-16 11:50:20 -07:00
option-nonzero-eq.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
overaligned-constant.rs tests: fix overaligned-constant to not over-specify getelementptr instr 2023-12-21 15:53:28 -05:00
packed.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
panic-abort-windows.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
panic-in-drop-abort.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
panic-unwind-default-uwtable.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
personality_lifetimes.rs Make test compatible with 32-bit as well 2024-01-05 11:45:57 +01:00
pgo-counter-bias.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
pgo-instrumentation.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
pic-relocation-model.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
pie-relocation-model.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
ptr-arithmetic.rs Tell LLVM that the negation in <*const T>::sub cannot overflow 2023-08-10 23:00:39 -07:00
ptr-read-metadata.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
README.md Move /src/test to /tests 2023-01-11 09:32:08 +00:00
refs.rs Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
repeat-trusted-len.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
scalar-pair-bool.rs Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
set-discriminant-invalid.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
slice_as_from_ptr_range.rs Update the minimum external LLVM to 15 2023-07-27 14:07:08 -07:00
slice-as_chunks.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
slice-indexing.rs Use nuw when calculating slice lengths from Ranges 2023-03-05 15:15:22 -08:00
slice-init.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
slice-iter-fold.rs Update the minimum external LLVM to 16. 2023-11-21 22:40:16 +01:00
slice-iter-len-eq-zero.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
slice-iter-nonnull.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
slice-position-bounds-check.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
slice-ref-equality.rs Bless codegen tests. 2023-08-17 18:28:33 +00:00
slice-reverse.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
slice-windows-no-bounds-check.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
some-abis-do-extend-params-to-32-bits.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
some-global-nonnull.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
sparc-struct-abi.rs llvm: Allow noundef in codegen tests 2024-01-02 18:02:17 +00:00
split-lto-unit.rs Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
sroa-fragment-debuginfo.rs Restrict test to x86_64. 2023-08-26 22:55:52 +00:00
sse42-implies-crc32.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
stack-probes-inline.rs Enable stack probes on aarch64 for LLVM 18 2023-12-07 17:17:00 -08:00
stack-protector.rs tests: be even more permissive on attributes in one test 2023-06-23 09:48:00 -04:00
static-relocation-model-msvc.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
staticlib-external-inline-fns.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
stores.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
swap-large-types.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
swap-small-types.rs Tweak the threshold for chunked swapping 2024-01-19 23:00:34 -08:00
target-cpu-on-functions.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
target-feature-inline-closure.rs Don't accidentally detect the commit hash as an fadd instruction 2023-10-10 16:59:49 +11:00
target-feature-overrides.rs Change src/test to tests in source files, fix tidy and tests 2023-01-11 09:32:13 +00:00
thin-lto.rs Add thinlto support to codegen, assembly and coverage tests 2023-11-30 18:48:03 +08:00
thread-local.rs tests: adapt for LLVM change 5b386b864c7619897c51a1da97d78f1cf6f3eff6 2023-04-17 10:53:18 -04:00
tied-features-strength.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
to_vec.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
trailing_zeros.rs add codegen test for issue 107554 2023-08-16 14:04:05 +09:00
transmute-optimized.rs Update the minimum external LLVM to 15 2023-07-27 14:07:08 -07:00
transmute-scalar.rs Update the minimum external LLVM to 15 2023-07-27 14:07:08 -07:00
try_identity.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
try_question_mark_nop.rs Update the minimum external LLVM to 15 2023-07-27 14:07:08 -07:00
tune-cpu-on-functions.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
tuple-layout-opt.rs Remove some wasm/emscripten ignores 2023-08-25 19:48:20 -04:00
unchecked_shifts.rs tests: update check for inferred nneg on zext 2023-11-13 10:43:33 -05:00
unchecked-float-casts.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
uninit-consts.rs Update the minimum external LLVM to 15 2023-07-27 14:07:08 -07:00
union-abi.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
unwind-and-panic-abort.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unwind-extern-exports.rs codegen: add needs-unwind to tests that require it 2023-05-23 16:54:35 +02:00
unwind-extern-imports.rs codegen: add needs-unwind to tests that require it 2023-05-23 16:54:35 +02:00
unwind-landingpad-cold.rs Limit to LLVM 17.0.2 to work around WinEH codegen bug 2023-10-02 11:06:38 +02:00
unwind-landingpad-inline.rs Limit to LLVM 17.0.2 to work around WinEH codegen bug 2023-10-02 11:06:38 +02:00
used_with_arg.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
var-names.rs Always name the return place. 2023-07-08 15:38:40 +02:00
vec_pop_push_noop.rs update codegen tests 2024-01-22 15:46:32 +01:00
vec-as-ptr.rs CHECK only for opaque ptr 2023-07-27 14:44:13 -07:00
vec-calloc.rs Update the minimum external LLVM to 15 2023-07-27 14:07:08 -07:00
vec-in-place.rs Update the minimum external LLVM to 16. 2023-11-21 22:40:16 +01:00
vec-iter-collect-len.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
vec-iter.rs Don't use mem::zeroed in vec::IntoIter 2024-02-16 10:44:39 -05:00
vec-optimizes-away.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
vec-reserve-extend.rs update codegen tests 2024-01-22 15:46:32 +01:00
vec-shrink-panik.rs use indexed loop instead of ptr bumping 2023-06-14 22:22:41 +02:00
vecdeque_no_panic.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
vecdeque-drain.rs add codegen test 2024-02-16 13:11:05 +01:00
vecdeque-nonempty-get-no-panic.rs Add test to guard against VecDeque optimization regression 2023-09-21 20:42:21 -07:00
virtual-function-elimination-32bit.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
virtual-function-elimination.rs Fix a codegen test with some hard-coded hashes 2023-04-05 15:59:29 +00:00
wasm_casts_trapping.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
wasm_exceptions.rs add codegen-test: wasm-exceptions 2023-07-01 20:24:15 +02:00
zip.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
zst-offset.rs Address review comments 2024-01-02 15:03:14 +01:00

The files here use the LLVM FileCheck framework, documented at https://llvm.org/docs/CommandGuide/FileCheck.html.

One extension worth noting is the use of revisions as custom prefixes for FileCheck. If your codegen test has different behavior based on the chosen target or different compiler flags that you want to exercise, you can use a revisions annotation, like so:

// revisions: aaa bbb
// [bbb] compile-flags: --flags-for-bbb

After specifying those variations, you can write different expected, or explicitly unexpected output by using <prefix>-SAME: and <prefix>-NOT:, like so:

// CHECK: expected code
// aaa-SAME: emitted-only-for-aaa
// aaa-NOT:                        emitted-only-for-bbb
// bbb-NOT:  emitted-only-for-aaa
// bbb-SAME:                       emitted-only-for-bbb