rust/tests/codegen
bors 816f958ac3 Auto merge of #108157 - scottmcm:tuple-gt-via-partialcmp, r=dtolnay
Use `partial_cmp` to implement tuple `lt`/`le`/`ge`/`gt`

In today's implementation, `(A, B)::gt` contains calls to *both* `A::eq` *and* `A::gt`.

That's fine for primitives, but for things like `String`s it's kinda weird -- `(String, usize)::gt` has a call to both `bcmp` and `memcmp` (<https://rust.godbolt.org/z/7jbbPMesf>) because when `bcmp` says the `String`s aren't equal, it turns around and calls `memcmp` to find out which one's bigger.

This PR changes the implementation to instead implement `(A, …, C, Z)::gt` using `A::partial_cmp`, `…::partial_cmp`, `C::partial_cmp`, and `Z::gt`.  (And analogously for `lt`, `le`, and `ge`.)  That way expensive comparisons don't need to be repeated.

Technically this is an observable change on stable, so I've marked it `needs-fcp` + `T-libs-api` and will
r? rust-lang/libs-api

I'm hoping that this will be non-controversial, however, since it's very similar to the observable changes that were made to the derives (#81384 #98655) -- like those, this only changes behaviour if a type overrode behaviour in a way inconsistent with the rules for the various traits involved.

(The first commit here is #108156, adding the codegen test, which I used to make sure this doesn't regress behaviour for primitives.)

Zulip conversation about this change: <https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/.60.3E.60.20on.20Tuples/near/328392927>.
2023-03-05 22:02:26 +00:00
..
auxiliary Move /src/test to /tests 2023-01-11 09:32:08 +00:00
avr abi: add AddressSpace field to Primitive::Pointer 2023-01-22 23:41:39 -05:00
dllimports Add more codegen tests 2023-01-17 16:23:22 +01:00
instrument-xray Test XRay only for supported targets 2023-02-09 12:29:43 +09:00
intrinsics Add more codegen tests 2023-01-17 16:23:22 +01:00
non-terminate Move /src/test to /tests 2023-01-11 09:32:08 +00:00
remap_path_prefix Update tests 2023-02-25 21:43:25 +01:00
riscv-abi Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
simd-intrinsic Try to fix codegen tests for ??? LLVM 14 ??? 2023-02-14 19:49:49 -05:00
src-hash-algorithm Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unwind-abis Move /src/test to /tests 2023-01-11 09:32:08 +00:00
abi-efiapi.rs Stabilize abi_efiapi feature 2023-01-11 20:42:13 -05:00
abi-main-signature-16bit-c-int.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
abi-main-signature-32bit-c-int.rs Move /src/test to /tests 2023-01-11 09:32:08 +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
adjustments.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
align-enum.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
align-fn.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
align-struct.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
alloc-optimisation.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
array-clone.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
array-equality.rs Merge two different equality specialization traits in core 2023-03-01 14:42:06 -08:00
array-map.rs Allow canonicalizing the array::map loop in trusted cases 2023-02-04 16:44:51 -08: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-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 Move /src/test to /tests 2023-01-11 09:32:08 +00:00
asm-target-clobbers.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
async-fn-debug-awaitee-field.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
async-fn-debug-msvc.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
async-fn-debug.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
atomic-operations.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
autovectorize-f32x4.rs Add another autovectorization codegen test using array zip-map 2023-02-04 16:44:53 -08:00
binary-search-index-no-bound-check.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
bool-cmp.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
box-maybe-uninit-llvm14.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
box-maybe-uninit.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01: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
c-variadic-copy.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
c-variadic-opt.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
c-variadic.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
call-llvm-intrinsics.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
call-metadata.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
catch-unwind.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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
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 Move /src/test to /tests 2023-01-11 09:32:08 +00:00
comparison-operators-2-tuple.rs Use partial_cmp to implement tuple lt/le/ge/gt 2023-02-16 23:59:13 -08:00
comparison-operators-newtype.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
consts.rs Update tests 2023-02-25 21:43:25 +01:00
dealloc-no-unwind.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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 Move /src/test to /tests 2023-01-11 09:32:08 +00:00
debug-compile-unit-path.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
debug-linkage-name.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
debug-vtable.rs Don't merge vtables when full debuginfo is enabled. 2023-01-27 15:29:04 +00:00
debuginfo-generic-closure-env-names.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
deduced-param-attrs.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
default-requires-uwtable.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
drop.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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
enum-bounds-check-derived-idx.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
enum-bounds-check-issue-13926.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
enum-bounds-check-issue-82871.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
enum-bounds-check.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
enum-debug-clike.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
enum-debug-niche-2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
enum-debug-niche.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
enum-debug-tagged.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
enum-discriminant-value.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
enum-match.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01: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 Move /src/test to /tests 2023-01-11 09:32:08 +00:00
fastcall-inreg.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
fatptr.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
fewer-names.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
ffi-const.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
ffi-out-of-bounds-loads.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
ffi-pure.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
ffi-returns-twice.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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 Move /src/test to /tests 2023-01-11 09:32:08 +00:00
force-no-unwind-tables.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
force-unwind-tables.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
frame-pointer.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
function-arguments-noopt.rs make PointerKind directly reflect pointer types 2023-02-06 11:46:32 +01:00
function-arguments.rs Make dyn* have the same scalar pair ABI as corresponding fat pointer 2023-02-18 19:47:34 +00:00
gdb_debug_script_load.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generator-debug-msvc.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generator-debug.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 Move /src/test to /tests 2023-01-11 09:32:08 +00:00
global_asm_x2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
global_asm.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
i686-macosx-deployment-target.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
i686-no-macosx-deployment-target.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
inherit_overflow.rs Fix codegen test. 2023-02-18 21:35:02 +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-hint.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
instrument-coverage.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
instrument-mcount.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
integer-cmp.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
integer-overflow.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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
issue-13018.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-15953.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-27130.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-32031.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
issue-32364.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-34634.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-34947-pow-i32.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-37945.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-44056-macos-tls-align.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-45222.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-45466.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-45964-bounds-check-slice-pos.rs replace manual ptr arithmetic with ptr_sub 2023-01-15 17:38:05 +01:00
issue-47278.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-47442.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-56267-2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-56267.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-56927.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-58881.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
issue-59352.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-69101-bounds-check.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-73031.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-73338-effecient-cmp.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-73396-bounds-check-after-position.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-73827-bounds-check-index-in-subexpr.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-75525-bounds-checks.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-75546.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-75659.rs Support true and false as boolean flag params 2023-01-18 20:46:36 +01:00
issue-77812.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-81408-dllimport-thinlto-windows.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-84268.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-85872-multiple-reverse.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-86106.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-96274.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-96497-slice-size-nowrap.rs bump failing assembly & codegen tests from LLVM 14 to LLVM 15 2023-01-17 20:02:01 +01:00
issue-98156-const-arg-temp-lifetime.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-98294-get-mut-copy-from-slice-opt.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-103285-ptr-addr-overflow-check.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-103840.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-105386-ub-in-debuginfo.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
iter-repeat-n-trivial-drop.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
layout-size-checks.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
lifetime_start_end.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
link_section.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
link-dead-code.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
loads.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
local-generics-in-exe-internalized.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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 Change src/test to tests in source files, fix tidy and tests 2023-01-11 09:32:13 +00:00
match-optimizes-away.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
match-unoptimized.rs Change src/test to tests in source files, fix tidy and tests 2023-01-11 09:32:13 +00:00
mem-replace-direct-memcpy.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
merge-functions.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
mir_zst_stores.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
mir-inlined-line-numbers.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
move-operands.rs Fix codegen tests 2023-02-14 19:21:58 -05:00
naked-functions.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
naked-nocoverage.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
naked-noinline.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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 Move /src/test to /tests 2023-01-11 09:32:08 +00: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 Move /src/test to /tests 2023-01-11 09:32:08 +00:00
optimize-attr-1.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
option-as-slice.rs Add Option::as_slice(_mut) 2023-03-01 00:05:31 +01:00
option-nonzero-eq.rs Implement SpecOptionPartialEq for cmp::Ordering 2023-01-18 19:19:28 -08:00
packed.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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 Move /src/test to /tests 2023-01-11 09:32:08 +00:00
personality_lifetimes.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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
README.md Move /src/test to /tests 2023-01-11 09:32:08 +00:00
refs.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
repeat-trusted-len.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
repr-transparent-aggregates-1.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
repr-transparent-aggregates-2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
repr-transparent-aggregates-3.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
repr-transparent-sysv64.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
repr-transparent.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
sanitizer_memtag_attr_check.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
sanitizer_scs_attr_check.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
sanitizer-cfi-add-canonical-jump-tables-flag.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
sanitizer-cfi-emit-type-checks.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
sanitizer-cfi-emit-type-metadata-id-itanium-cxx-abi.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
sanitizer-cfi-emit-type-metadata-itanium-cxx-abi.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
sanitizer-kasan-emits-instrumentation.rs Add kernel-address sanitizer support for freestanding targets 2023-02-14 20:54:25 -05:00
sanitizer-kcfi-add-kcfi-flag.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
sanitizer-kcfi-emit-kcfi-operand-bundle-itanium-cxx-abi.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
sanitizer-memory-track-orgins.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
sanitizer-no-sanitize-inlining.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
sanitizer-no-sanitize.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
sanitizer-recover.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
scalar-pair-bool.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
set-discriminant-invalid.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
simd_arith_offset.rs Fix codegen tests 2023-02-14 19:21:58 -05:00
simd-wide-sum.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
slice_as_from_ptr_range.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
slice-as_chunks.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
slice-init.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
slice-iter-len-eq-zero.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
slice-position-bounds-check.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
slice-ref-equality.rs Merge two different equality specialization traits in core 2023-03-01 14:42:06 -08: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 Move /src/test to /tests 2023-01-11 09:32:08 +00:00
sse42-implies-crc32.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
stack-probes-call.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
stack-probes-inline.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
stack-protector.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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 Move /src/test to /tests 2023-01-11 09:32:08 +00:00
swap-large-types.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
swap-simd-types.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
swap-small-types.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
target-cpu-on-functions.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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
thread-local.rs Add QNX Neutrino support to libstd 2023-02-28 15:59:47 +01:00
to_vec.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
transmute-scalar.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
try_identity.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
try_question_mark_nop.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
tune-cpu-on-functions.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
tuple-layout-opt.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
unchecked_shifts.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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 14 2023-02-10 16:06:25 -08:00
union-abi.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unpadded-simd.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unwind-and-panic-abort.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unwind-extern-exports.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unwind-extern-imports.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
used_with_arg.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
var-names.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
vec-calloc-llvm14.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
vec-calloc.rs Auto merge of #106989 - clubby789:is-zero-num, r=scottmcm 2023-01-19 08:04:26 +00:00
vec-in-place.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
vec-iter-collect-len.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
vec-optimizes-away.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
vec-shrink-panik.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
vecdeque_no_panic.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
virtual-function-elimination-32bit.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
virtual-function-elimination.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
wasm_casts_trapping.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
x86_64-macosx-deployment-target.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
x86_64-no-macosx-deployment-target.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
zip.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
zst-offset.rs Add more codegen tests 2023-01-17 16:23:22 +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