rust/tests/codegen
2023-11-21 14:24:23 -08:00
..
auxiliary
avr
cffi
cross-crate-inlining Add -Zcross-crate-inline-threshold=yes 2023-11-07 18:45:11 -05:00
dllimports
enum
instrument-xray Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
intrinsics
issues
lib-optimizations
loongarch-abi
macos
naked-fn
non-terminate
remap_path_prefix
repr
riscv-abi
sanitizer Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
simd Emit #[inline] on derive(Debug) 2023-11-09 10:40:55 -05:00
simd-intrinsic
src-hash-algorithm Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
unwind-abis
aarch64-struct-align-128.rs
abi-efiapi.rs
abi-main-signature-16bit-c-int.rs
abi-main-signature-32bit-c-int.rs
abi-repr-ext.rs
abi-sysv64.rs
abi-x86_64_sysv.rs
abi-x86-interrupt.rs
addr-of-mutate.rs
adjustments.rs
align-byval-vector.rs
align-byval.rs
align-enum.rs
align-fn.rs
align-offset.rs
align-struct.rs
alloc-optimisation.rs
array-clone.rs
array-codegen.rs Copy 1-element arrays as scalars, not vectors 2023-10-07 00:10:32 -07:00
array-equality.rs
array-map.rs
array-optimized.rs Copy 1-element arrays as scalars, not vectors 2023-10-07 00:10:32 -07:00
ascii-char.rs
asm-clobber_abi.rs
asm-clobbers.rs
asm-may_unwind.rs
asm-maybe-uninit.rs
asm-multiple-options.rs
asm-options.rs
asm-powerpc-clobbers.rs
asm-sanitize-llvm.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
asm-target-clobbers.rs
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
atomic-operations.rs
autovectorize-f32x4.rs
binary-search-index-no-bound-check.rs
bool-cmp.rs
box-uninit-bytes.rs
bpf-alu32.rs
branch-protection.rs
call-llvm-intrinsics.rs
call-metadata.rs
catch-unwind.rs
cdylib-external-inline-fns.rs
cf-protection.rs
cfguard-checks.rs
cfguard-disabled.rs
cfguard-nochecks.rs
cfguard-non-msvc.rs
char-ascii-branchless.rs Refactor some char, u8 ascii functions to be branchless 2023-10-26 21:48:36 -04:00
codemodels.rs
coercions.rs
cold-call-declare-and-call.rs
comparison-operators-2-tuple.rs
comparison-operators-newtype.rs
const_scalar_pair.rs
consts.rs
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
debug-alignment.rs
debug-column-msvc.rs
debug-column.rs
debug-compile-unit-path.rs
debug-fndef-size.rs Ignore MSVC in test. 2023-10-08 16:45:45 +00:00
debug-limited.rs
debug-line-directives-only.rs
debug-line-tables-only.rs
debug-linkage-name.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
debug-vtable.rs
debuginfo-constant-locals.rs
debuginfo-generic-closure-env-names.rs
debuginfo-inline-callsite-location.rs
deduced-param-attrs.rs
default-requires-uwtable.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
drop-in-place-noalias.rs
drop.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
dst-vtable-align-nonzero.rs
dst-vtable-size-range.rs
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
export-no-mangle.rs
external-no-mangle-fns.rs
external-no-mangle-statics.rs
fastcall-inreg.rs
fatptr.rs
fewer-names.rs
float_math.rs
fn-impl-trait-self.rs
foo.s
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
force-unwind-tables.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
frame-pointer.rs
function-arguments-noopt.rs
function-arguments.rs
gdb_debug_script_load.rs
generic-debug.rs
global_asm_include.rs
global_asm_x2.rs
global_asm.rs
inherit_overflow.rs
inline-always-works-always.rs
inline-debuginfo.rs
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
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
integer-overflow.rs
internalize-closures.rs
intrinsic-no-unnamed-attr.rs
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
layout-size-checks.rs
lifetime_start_end.rs
link_section.rs
link-dead-code.rs
llvm_module_flags.rs Add -Z llvm_module_flag 2023-11-11 19:48:47 -08:00
llvm-ident.rs
loads.rs
local-generics-in-exe-internalized.rs
lto-removes-invokes.rs
mainsubprogram.rs
mainsubprogramstart.rs
match-optimized.rs
match-optimizes-away.rs
match-unoptimized.rs
mem-replace-big-type.rs
mem-replace-simple-type.rs
merge-functions.rs
method-declaration.rs
mir_zst_stores.rs
mir-inlined-line-numbers.rs
move-before-nocapture-ref-arg.rs
move-operands.rs
no_builtins-at-crate.rs
no-assumes-on-casts.rs
no-dllimport-w-cross-lang-lto.rs
no-jump-tables.rs
no-plt.rs
noalias-box-off.rs
noalias-box.rs
noalias-flag.rs
noalias-refcell.rs
noalias-rwlockreadguard.rs
noalias-unpin.rs
noreturn-uninhabited.rs
noreturnflag.rs
nounwind.rs
nrvo.rs
optimize-attr-1.rs
option-as-slice.rs
option-nonzero-eq.rs
packed.rs
panic-abort-windows.rs
panic-in-drop-abort.rs
panic-unwind-default-uwtable.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
personality_lifetimes.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
pgo-counter-bias.rs
pgo-instrumentation.rs
pic-relocation-model.rs
pie-relocation-model.rs
ptr-arithmetic.rs
ptr-read-metadata.rs
README.md
refs.rs
repeat-trusted-len.rs
scalar-pair-bool.rs
set-discriminant-invalid.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
slice-position-bounds-check.rs
slice-ref-equality.rs
slice-reverse.rs
slice-windows-no-bounds-check.rs
some-abis-do-extend-params-to-32-bits.rs
some-global-nonnull.rs
sparc-struct-abi.rs
split-lto-unit.rs
sroa-fragment-debuginfo.rs
sse42-implies-crc32.rs
stack-probes-call.rs
stack-probes-inline.rs
stack-protector.rs
static-relocation-model-msvc.rs
staticlib-external-inline-fns.rs
stores.rs
swap-large-types.rs
swap-small-types.rs
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
thread-local.rs
tied-features-strength.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
to_vec.rs
trailing_zeros.rs
transmute-optimized.rs
transmute-scalar.rs
try_identity.rs
try_question_mark_nop.rs
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
unchecked_shifts.rs tests: update check for inferred nneg on zext 2023-11-13 10:43:33 -05:00
unchecked-float-casts.rs
uninit-consts.rs
union-abi.rs
unwind-and-panic-abort.rs
unwind-extern-exports.rs
unwind-extern-imports.rs
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
var-names.rs
vec_pop_push_noop.rs Add invariant to Vec::pop that len < cap if pop successful 2023-10-16 18:49:25 +02:00
vec-as-ptr.rs
vec-calloc.rs
vec-in-place.rs
vec-iter-collect-len.rs
vec-optimizes-away.rs
vec-reserve-extend.rs Hint optimizer about reserved capacity 2023-11-02 00:52:06 +00:00
vec-shrink-panik.rs
vecdeque_no_panic.rs
vecdeque-nonempty-get-no-panic.rs
virtual-function-elimination-32bit.rs
virtual-function-elimination.rs
wasm_casts_trapping.rs
wasm_exceptions.rs
zip.rs
zst-offset.rs

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