//@ revisions: WIN LIN //@ [WIN] only-windows //@ [LIN] only-linux //@ assembly-output: emit-asm //@ compile-flags: --crate-type=lib -O -C llvm-args=-x86-asm-syntax=intel //@ only-x86_64 //@ ignore-sgx use std::cmp::Ordering; // CHECK-lABEL: ordering_eq: #[no_mangle] pub fn ordering_eq(l: Option, r: Option) -> bool { // Linux (System V): first two arguments are rdi then rsi // Windows: first two arguments are rcx then rdx // Both use rax for the return value. // CHECK-NOT: mov // CHECK-NOT: test // CHECK-NOT: cmp // LIN: cmp dil, sil // WIN: cmp cl, dl // CHECK-NEXT: sete al // CHECK-NEXT: ret l == r }