rust/tests/codegen
bors 54fdef7799 Auto merge of #121614 - clubby789:no-expect, r=saethlin
Don't emit `expect`/`assume` in opt-level=0

LLVM does not make use of expect/assume calls in `opt-level=0`, so we can simplify IR by not emitting them in this case.
2024-09-06 00:42:58 +00:00
..
auxiliary Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
avr Let InstCombine remove Clone shims inside Clone shims 2024-07-25 15:14:42 -04:00
cffi Add -Zlint-llvm-ir 2024-08-29 18:12:31 +08:00
cross-crate-inlining
debug-accessibility
dllimports Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
enum Add range attribute to scalar function results and arguments 2024-08-11 19:40:44 +02:00
float Adjust tests for x86 "Rust" ABI changes 2024-07-12 10:47:56 +01:00
instrument-coverage Disallow setting built-in cfgs via set the command-line 2024-08-07 14:08:34 +02:00
instrument-xray
intrinsics Don't codegen expect in opt-level=0 2024-09-04 11:49:00 +00:00
issues ignore/fix layout-sensitive tests 2024-08-31 23:56:45 +02:00
lib-optimizations Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
loongarch-abi Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
macos Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
meta-filecheck
naked-fn add repr to the allowlist for naked functions, and test that it works 2024-08-27 17:17:47 +02:00
non-terminate Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
patchable-function-entry Updated code for changes to RFC, added additional error handling, added 2024-06-25 19:00:02 +02:00
remap_path_prefix
repr Auto merge of #128371 - andjo403:rangeAttribute, r=nikic 2024-08-12 10:20:00 +00:00
riscv-abi Let InstCombine remove Clone shims inside Clone shims 2024-07-25 15:14:42 -04:00
sanitizer riscv64imac: allow shadow call stack sanitizer 2024-08-29 21:48:48 +08:00
simd Chore: add x86_amx_intrinsics feature flag to core/lib.rs and remove issue-120720-reduce-nan.rs 2024-08-04 03:08:18 +05:30
simd-intrinsic
src-hash-algorithm
unwind-abis Remove c_unwind from tests and fix tests 2024-06-19 13:54:55 +01:00
aarch64-struct-align-128.rs Disallow setting built-in cfgs via set the command-line 2024-08-07 14:08:34 +02:00
abi-efiapi.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
abi-main-signature-16bit-c-int.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
abi-main-signature-32bit-c-int.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
abi-repr-ext.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
abi-sysv64.rs
abi-x86_64_sysv.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
abi-x86-interrupt.rs
addr-of-mutate.rs
adjustments.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
align-byval-alignment-mismatch.rs Remove c_unwind from tests and fix tests 2024-06-19 13:54:55 +01:00
align-byval-vector.rs
align-byval.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
align-enum.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
align-fn.rs
align-offset.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
align-struct.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
alloc-optimisation.rs
array-clone.rs
array-cmp.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
array-codegen.rs
array-equality.rs
array-from_fn.rs test(std): Add codegen test for array::from_fn optimization 2024-08-10 10:44:24 +08:00
array-map.rs
array-optimized.rs
array-repeat.rs update codegen test for array::repeat 2024-06-19 17:48:05 +02:00
ascii-char.rs
asm-clobber_abi.rs
asm-clobbers.rs
asm-goto.rs
asm-may_unwind.rs
asm-maybe-uninit.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
asm-multiple-options.rs
asm-options.rs
asm-powerpc-clobbers.rs
asm-sanitize-llvm.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
asm-target-clobbers.rs
async-closure-debug.rs
async-fn-debug-awaitee-field.rs
async-fn-debug-msvc.rs
async-fn-debug.rs
atomic-operations.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
atomicptr.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
autovectorize-f32x4.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
binary-search-index-no-bound-check.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
bool-cmp.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
box-uninit-bytes.rs
bpf-alu32.rs
branch-protection-old-llvm.rs Set branch protection function attributes 2024-07-24 17:13:25 +02:00
branch-protection.rs Set branch protection function attributes 2024-07-24 17:13:25 +02:00
call-llvm-intrinsics.rs
call-metadata.rs Add range attribute to scalar function results and arguments 2024-08-11 19:40:44 +02:00
cast-optimized.rs Add range attribute to scalar function results and arguments 2024-08-11 19:40:44 +02:00
cast-target-abi.rs Add -Zlint-llvm-ir 2024-08-29 18:12:31 +08:00
catch-unwind.rs Remove c_unwind from tests and fix tests 2024-06-19 13:54:55 +01:00
cdylib-external-inline-fns.rs
cf-protection.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
cfguard-checks.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
cfguard-disabled.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
cfguard-nochecks.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
cfguard-non-msvc.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
char-ascii-branchless.rs
checked_ilog.rs
checked_math.rs Also get add nuw from uN::checked_add 2024-06-23 13:29:06 -07:00
clone-shims.rs Let InstCombine remove Clone shims inside Clone shims 2024-07-25 15:14:42 -04:00
codemodels.rs
coercions.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
cold-call-declare-and-call.rs Disallow setting built-in cfgs via set the command-line 2024-08-07 14:08:34 +02:00
common_prim_int_ptr.rs Add range attribute to scalar function results and arguments 2024-08-11 19:40:44 +02:00
comparison-operators-2-tuple.rs
comparison-operators-newtype.rs
const_scalar_pair.rs
const-vector.rs const vector passed to codegen 2024-08-08 11:15:03 +01:00
constant-branch.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
consts.rs Use FileCheck to parameterize codegen tests over hashes 2024-06-04 01:30:51 -07:00
coroutine-debug-msvc.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
coroutine-debug.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
dealloc-no-unwind.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
debug-alignment.rs
debug-column-msvc.rs
debug-column.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
debug-compile-unit-path.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
debug-fndef-size.rs Adjust dbg.value/dbg.declare checks for LLVM update 2024-05-06 23:15:48 +00:00
debug-limited.rs
debug-line-directives-only.rs
debug-line-tables-only.rs
debug-linkage-name.rs
debug-vtable.rs
debuginfo-constant-locals.rs Adjust dbg.value/dbg.declare checks for LLVM update 2024-05-06 23:15:48 +00:00
debuginfo-generic-closure-env-names.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
debuginfo-inline-callsite-location.rs Rework MIR inlining debuginfo so function parameters show up in debuggers. 2024-08-12 19:20:00 -07:00
deduced-param-attrs.rs
default-hidden-visibility.rs
default-requires-uwtable.rs Disallow setting built-in cfgs via set the command-line 2024-08-07 14:08:34 +02:00
direct-access-external-data.rs
dont_codegen_private_const_fn_only_used_in_const_eval.rs Also support generic constants 2024-06-05 15:40:11 +00:00
drop-in-place-noalias.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
drop.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
dst-offset.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
dst-vtable-align-nonzero.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
dst-vtable-size-range.rs
ehcontguard_disabled.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
ehcontguard_enabled.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
emcripten-catch-unwind.rs Let InstCombine remove Clone shims inside Clone shims 2024-07-25 15:14:42 -04:00
enable-lto-unit-splitting.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
error-provide.rs Apply suggestion. 2024-06-16 17:19:25 +08:00
export-no-mangle.rs
external-no-mangle-fns.rs
external-no-mangle-statics.rs
fastcall-inreg.rs
fatptr.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
fewer-names.rs
fixed-x18.rs Add -Zfixed-x18 2024-05-03 14:32:08 +02:00
float_math.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
fn-impl-trait-self.rs
foo.s
force-frame-pointers.rs test: ignore force-frame-pointers test on some targets 2024-06-23 00:40:43 -07:00
force-no-unwind-tables.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
force-unwind-tables.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
frame-pointer.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
function-arguments-noopt.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
function-arguments.rs Add range attribute to scalar function results and arguments 2024-08-11 19:40:44 +02:00
function-return.rs
gdb_debug_script_load.rs Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
generic-debug.rs reenable some windows tests 2024-07-14 13:48:29 +03:00
global_asm_include.rs
global_asm_x2.rs
global_asm.rs
i128-x86-align.rs
infallible-unwrap-in-opt-z.rs
inherit_overflow.rs
inline-always-works-always.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
inline-debuginfo.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
inline-function-args-debug-info.rs Rework MIR inlining debuginfo so function parameters show up in debuggers. 2024-08-12 19:20:00 -07:00
inline-hint.rs
instrument-mcount.rs
integer-cmp.rs llvm 20: adapt integer comparison tests 2024-08-22 13:23:00 +00:00
integer-overflow.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
internalize-closures.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
intrinsic-no-unnamed-attr.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
is_val_statically_known.rs Fix is_val_statically_known for floats 2024-08-17 02:14:23 +01:00
issue-97217.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
iter-repeat-n-trivial-drop.rs Implement UncheckedIterator directly for RepeatN 2024-08-01 21:58:34 -07:00
layout-size-checks.rs
lifetime_start_end.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
link_section.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
link-dead-code.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
llvm_module_flags.rs
llvm-ident.rs
loads.rs
local-generics-in-exe-internalized.rs
lto-removes-invokes.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
mainsubprogram.rs reenable some windows tests 2024-07-14 13:48:29 +03:00
mainsubprogramstart.rs reenable some windows tests 2024-07-14 13:48:29 +03:00
match-optimized.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
match-optimizes-away.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
match-unoptimized.rs
maybeuninit-rvo.rs
mem-replace-big-type.rs ignore/fix layout-sensitive tests 2024-08-31 23:56:45 +02:00
mem-replace-simple-type.rs
merge-functions.rs
method-declaration.rs
mir_zst_stores.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
mir-aggregate-no-alloca.rs Unify Rvalue::Aggregate paths in cg_ssa 2024-05-11 21:22:51 -07:00
mir-inlined-line-numbers.rs
move-before-nocapture-ref-arg.rs
move-operands.rs
no_builtins-at-crate.rs
no-assumes-on-casts.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
no-dllimport-w-cross-lang-lto.rs
no-jump-tables.rs
no-plt.rs
no-redundant-item-monomorphization.rs
noalias-box-off.rs
noalias-box.rs
noalias-flag.rs
noalias-freeze.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
noalias-refcell.rs
noalias-rwlockreadguard.rs
noalias-unpin.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
noreturn-uninhabited.rs
noreturnflag.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
nounwind.rs reenable some windows tests 2024-07-14 13:48:29 +03:00
nrvo.rs
optimize-attr-1.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
option-as-slice.rs Use Option's discriminant as its size hint 2024-07-15 00:34:03 -07:00
option-niche-eq.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
overaligned-constant.rs
packed.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
panic-abort-windows.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
panic-in-drop-abort.rs
panic-unwind-default-uwtable.rs
pattern_type_symbols.rs Use FileCheck to parameterize codegen tests over hashes 2024-06-04 01:30:51 -07:00
personality_lifetimes.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
pgo-counter-bias.rs Use -Zno-profiler-runtime instead of //@ needs-profiler-support 2024-06-14 13:31:46 +10:00
pgo-instrumentation.rs Use -Zno-profiler-runtime instead of //@ needs-profiler-support 2024-06-14 13:31:46 +10:00
pic-relocation-model.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
pie-relocation-model.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
powerpc64le-struct-align-128.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
precondition-checks.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
ptr-arithmetic.rs
ptr-read-metadata.rs
range-attribute.rs Add range attribute to scalar function results and arguments 2024-08-11 19:40:44 +02:00
README.md
refs.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
repeat-trusted-len.rs
riscv-target-abi.rs
scalar-pair-bool.rs
set-discriminant-invalid.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
skip-mono-inside-if-false.rs
slice_as_from_ptr_range.rs
slice-as_chunks.rs
slice-indexing.rs
slice-init.rs
slice-iter-fold.rs
slice-iter-len-eq-zero.rs
slice-iter-nonnull.rs ignore/fix layout-sensitive tests 2024-08-31 23:56:45 +02:00
slice-pointer-nonnull-unwrap.rs Fix tests for 32 bits targets 2024-06-11 07:45:16 +00:00
slice-position-bounds-check.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
slice-ref-equality.rs
slice-reverse.rs
slice-windows-no-bounds-check.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
some-abis-do-extend-params-to-32-bits.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
some-global-nonnull.rs
sparc-struct-abi.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
split-lto-unit.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
sroa-fragment-debuginfo.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
sse42-implies-crc32.rs Fix codegen tests 2024-08-07 00:41:48 -04:00
stack-probes-inline.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
stack-protector.rs
static-relocation-model-msvc.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
staticlib-external-inline-fns.rs
step_by-overflow-checks.rs
stores.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
swap-large-types.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
swap-small-types.rs
target-cpu-on-functions.rs
target-feature-inline-closure.rs
target-feature-overrides.rs Add implied features to non-target-feature functions 2024-08-07 00:41:48 -04:00
thin-lto.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
thread-local.rs
tied-features-strength.rs tests: Update with new aarch64 target features 2024-08-27 12:06:30 +00:00
to_vec.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
trailing_zeros.rs
transmute-optimized.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
transmute-scalar.rs
try_question_mark_nop.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
tune-cpu-on-functions.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
tuple-layout-opt.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
ub-checks.rs
unchecked_shifts.rs
unchecked-float-casts.rs
uninit-consts.rs
union-abi.rs Adjust tests for x86 "Rust" ABI changes 2024-07-12 10:47:56 +01:00
unwind-and-panic-abort.rs Remove c_unwind from tests and fix tests 2024-06-19 13:54:55 +01:00
unwind-extern-exports.rs Remove c_unwind from tests and fix tests 2024-06-19 13:54:55 +01:00
unwind-extern-imports.rs Remove c_unwind from tests and fix tests 2024-06-19 13:54:55 +01:00
unwind-landingpad-cold.rs
unwind-landingpad-inline.rs
used_with_arg.rs
var-names.rs
vec_pop_push_noop.rs
vec-as-ptr.rs
vec-calloc.rs
vec-in-place.rs add codegen test for issue 120493 2024-05-20 09:21:09 -05:00
vec-iter-collect-len.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
vec-iter.rs
vec-len-invariant.rs
vec-optimizes-away.rs
vec-reserve-extend.rs
vec-shrink-panik.rs
vec-with-capacity.rs
vecdeque_no_panic.rs
vecdeque_pop_push.rs
vecdeque-drain.rs ignore/fix layout-sensitive tests 2024-08-31 23:56:45 +02:00
vecdeque-nonempty-get-no-panic.rs
virtual-function-elimination-32bit.rs
virtual-function-elimination.rs Use FileCheck to parameterize codegen tests over hashes 2024-06-04 01:30:51 -07:00
vtable-loads.rs Omit non-needs_drop drop_in_place in vtables 2024-05-27 16:26:56 -04:00
vtable-upcast.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
wasm_casts_trapping.rs
wasm_exceptions.rs Fix wasm_exceptions test 2024-06-19 21:26:48 +01:00
zip.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
zst-offset.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10: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