rust/library/core/src
bors ee86f96ba1 Auto merge of #85828 - scottmcm:raw-eq, r=oli-obk
Stop generating `alloca`s & `memcmp` for simple short array equality

Example:
```rust
pub fn demo(x: [u16; 6], y: [u16; 6]) -> bool { x == y }
```

Before:
```llvm
define zeroext i1 `@_ZN10playground4demo17h48537f7eac23948fE(i96` %0, i96 %1) unnamed_addr #0 {
start:
  %y = alloca [6 x i16], align 8
  %x = alloca [6 x i16], align 8
  %.0..sroa_cast = bitcast [6 x i16]* %x to i96*
  store i96 %0, i96* %.0..sroa_cast, align 8
  %.0..sroa_cast3 = bitcast [6 x i16]* %y to i96*
  store i96 %1, i96* %.0..sroa_cast3, align 8
  %_11.i.i.i = bitcast [6 x i16]* %x to i8*
  %_14.i.i.i = bitcast [6 x i16]* %y to i8*
  %bcmp.i.i.i = call i32 `@bcmp(i8*` nonnull dereferenceable(12) %_11.i.i.i, i8* nonnull dereferenceable(12) %_14.i.i.i, i64 12) #2, !alias.scope !2
  %2 = icmp eq i32 %bcmp.i.i.i, 0
  ret i1 %2
}
```
```x86
playground::demo: # `@playground::demo`
	sub	rsp, 32
	mov	qword ptr [rsp], rdi
	mov	dword ptr [rsp + 8], esi
	mov	qword ptr [rsp + 16], rdx
	mov	dword ptr [rsp + 24], ecx
	xor	rdi, rdx
	xor	esi, ecx
	or	rsi, rdi
	sete	al
	add	rsp, 32
	ret
```

After:
```llvm
define zeroext i1 `@_ZN4mini4demo17h7a8994aaa314c981E(i96` %0, i96 %1) unnamed_addr #0 {
start:
  %2 = icmp eq i96 %0, %1
  ret i1 %2
}
```
```x86
_ZN4mini4demo17h7a8994aaa314c981E:
	xor	rcx, r8
	xor	edx, r9d
	or	rdx, rcx
	sete	al
	ret
```
2021-07-09 09:16:27 +00:00
..
alloc Use #[non_exhaustive] where appropriate 2021-06-24 04:16:11 -04:00
array Stop generating allocas+memcmp for simple array equality 2021-07-08 14:55:54 -07:00
char Use HTTPS links where possible 2021-06-23 16:26:46 -04:00
convert Use HTTPS links where possible 2021-06-23 16:26:46 -04:00
fmt Auto merge of #86048 - nbdd0121:no_floating_point, r=Amanieu 2021-07-04 14:18:57 +00:00
future
hash Add tracking issue and rename to hash_one 2021-06-24 01:30:48 -07:00
iter Auto merge of #86904 - m-ou-se:prelude-collision-check-trait, r=nikomatsakis 2021-07-09 06:35:42 +00:00
macros
mem Revert "Revert effects of PRs 81167 and 83091." 2021-06-27 12:05:16 +02:00
num special case for integer log10 2021-07-07 14:10:05 +02:00
ops Fix typo in ops::Drop docs 2021-07-07 22:26:32 +03:00
prelude
ptr Add reference to tracking issue #86302 for const_ptr_write 2021-06-27 12:05:19 +02:00
slice Auto merge of #86823 - the8472:opt-chunk-tra, r=kennytm 2021-07-08 09:44:52 +00:00
str Rollup merge of #86852 - Amanieu:remove_doc_aliases, r=joshtriplett 2021-07-06 02:33:16 +09:00
stream
sync Fix typo in core::sync::atomic::compiler_fence example 2021-07-06 10:53:14 -03:00
task Auto merge of #86598 - yoshuawuyts:poll-method-docs, r=JohnTitor 2021-07-04 20:00:57 +00:00
unicode Use HTTPS links where possible 2021-06-23 16:26:46 -04:00
any.rs
ascii.rs
bool.rs
borrow.rs
cell.rs Use #[non_exhaustive] where appropriate 2021-06-24 04:16:11 -04:00
clone.rs
cmp.rs Fix a few misspellings. 2021-06-25 13:18:56 -07:00
default.rs
ffi.rs
hint.rs
internal_macros.rs
intrinsics.rs PR feedback 2021-07-08 14:55:57 -07:00
lazy.rs
lib.rs Add s to non_fmt_panic 2021-07-06 20:12:56 +02:00
marker.rs Rename variable 2021-06-29 20:26:37 -04:00
option.rs Update to new bootstrap compiler 2021-06-28 11:30:49 -04:00
panic.rs
panicking.rs
pin.rs
primitive.rs
result.rs Update to new bootstrap compiler 2021-06-28 11:30:49 -04:00
time.rs
tuple.rs
unit.rs