granite-rust/tests/codegen
Matthias Krüger 7b78b6a78d
Rollup merge of #107022 - scottmcm:ordering-option-eq, r=m-ou-se
Implement `SpecOptionPartialEq` for `cmp::Ordering`

Noticed as I continue to explore options for having code using `partial_cmp` optimize better.

Before:
```llvm
; Function Attrs: mustprogress nofree nosync nounwind willreturn uwtable
define noundef zeroext i1 `@ordering_eq(i8` noundef %0, i8 noundef %1) unnamed_addr #0 {
start:
  %2 = icmp eq i8 %0, 2
  br i1 %2, label %bb1.i, label %bb3.i

bb1.i:                                            ; preds = %start
  %3 = icmp eq i8 %1, 2
  br label %"_ZN55_$LT$T$u20$as$u20$core..option..SpecOptionPartialEq$GT$2eq17hb7e7beacecde585fE.exit"

bb3.i:                                            ; preds = %start
  %.not.i = icmp ne i8 %1, 2
  %4 = icmp eq i8 %0, %1
  %spec.select.i = and i1 %.not.i, %4
  br label %"_ZN55_$LT$T$u20$as$u20$core..option..SpecOptionPartialEq$GT$2eq17hb7e7beacecde585fE.exit"

"_ZN55_$LT$T$u20$as$u20$core..option..SpecOptionPartialEq$GT$2eq17hb7e7beacecde585fE.exit": ; preds = %bb1.i, %bb3.i
  %.0.i = phi i1 [ %3, %bb1.i ], [ %spec.select.i, %bb3.i ]
  ret i1 %.0.i
}
```

After:
```llvm
; Function Attrs: mustprogress nofree norecurse nosync nounwind readnone willreturn uwtable
define noundef zeroext i1 `@ordering_eq(i8` noundef %0, i8 noundef %1) unnamed_addr #1 {
start:
  %2 = icmp eq i8 %0, %1
  ret i1 %2
}
```

(Which <https://alive2.llvm.org/ce/z/-rop5r> says LLVM *could* just do itself, but there's probably an issue already open for that problem from when this was originally looked at for `Option<NonZeroU8>` and friends.)
2023-01-28 05:20:15 +01: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
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 Move /src/test to /tests 2023-01-11 09:32:08 +00:00
riscv-abi Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
simd-intrinsic Move /src/test to /tests 2023-01-11 09:32:08 +00: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-interrupt.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
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 Move /src/test to /tests 2023-01-11 09:32:08 +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-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 Move /src/test to /tests 2023-01-11 09:32:08 +00: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-newtype.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
consts.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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 Move /src/test to /tests 2023-01-11 09:32:08 +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 Move /src/test to /tests 2023-01-11 09:32:08 +00:00
function-arguments.rs Add more codegen tests 2023-01-17 16:23:22 +01: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.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
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
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 Move /src/test to /tests 2023-01-11 09:32:08 +00: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-dead-code.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
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 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
mir_zst_stores.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
move-operands.rs Add a regression test for argument copies with DestinationPropagation 2023-01-11 10:27:06 -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-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-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-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
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
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-wide-sum.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
simd_arith_offset.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 Move /src/test to /tests 2023-01-11 09:32:08 +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
slice_as_from_ptr_range.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 Move /src/test to /tests 2023-01-11 09:32:08 +00: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 Move /src/test to /tests 2023-01-11 09:32:08 +00: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-float-casts.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unchecked_shifts.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
uninit-consts.rs Move /src/test to /tests 2023-01-11 09:32:08 +00: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 Move /src/test to /tests 2023-01-11 09:32:08 +00: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