bjorn3
e6e2f00d21
Fix incorrect implementation of several vendor intrinsics
2023-11-25 09:14:37 +00:00
bjorn3
3b49b9efd5
Implement the int part of the gather family vendor intrinsics
2023-11-24 20:45:22 +01:00
bjorn3
d5a7ae7976
Implement the float part of the gather family vendor intrinsics
2023-11-24 20:45:22 +01:00
bjorn3
c8729e9216
Implement _mm256_zeroupper vendor intrinsic
2023-11-24 20:45:22 +01:00
bjorn3
65da671694
Implement *fmaddsub_p*, *fmsubadd_p* and *fnmadd_p* vendor intrinsics
2023-11-24 20:45:22 +01:00
bjorn3
705031d017
Implement _mm_cvttps_epi32
2023-11-24 20:45:22 +01:00
bjorn3
3ec8d7aa4a
Implement _mm_cmpestri and _mm_cmpestrm using inline asm
2023-11-24 13:39:51 +00:00
bjorn3
9c958196e7
Fix polymorphization for coroutines
...
Fixes rust-lang/rustc_codegen_cranelift#1429
2023-11-24 10:46:22 +01:00
bjorn3
430ab4e923
Allow function pointers in CValue::const_val
...
Fixes rust-lang/rustc_codegen_cranelift#1430
2023-11-24 10:22:59 +01:00
bjorn3
a5fcfad890
Fix _mm_sad_epu8 implementation
...
Fixes rust-lang/rustc_codegen_cranelift#1426
2023-11-21 17:00:43 +01:00
bjorn3
cd7218aa9f
Update Cranelift to 0.102
2023-11-21 12:10:37 +01:00
bjorn3
ca85cc3c7b
Implement SHA256 intrinsics using inline asm
2023-11-12 17:17:57 +00:00
bjorn3
813f8b4fd0
Use inline asm for _mm_clmulepi64_si128
...
This is a lot more compact and significantly faster
2023-11-12 17:10:46 +00:00
bjorn3
dc60334777
Implement AES-NI intrinsics using inline asm
2023-11-12 17:10:46 +00:00
bjorn3
6ef877c8c2
Support narrowing casts in mir_operand_get_const_val
2023-11-12 17:10:46 +00:00
bjorn3
2769ac03ba
Inline codegen_xgetbv into llvm_x86.rs
2023-11-12 17:10:46 +00:00
bjorn3
9205667c0d
Extract codegen_inline_asm_inner function and use in codegen_xgetbv
2023-11-12 17:10:46 +00:00
bjorn3
7947070789
Minor changes to codegen_inline_asm_terminator
2023-11-12 17:10:46 +00:00
bjorn3
82487a9447
Merge pull request #1417 from rust-lang/implement_xgetbv
...
Implement a lot of SIMD intrinsics
2023-11-07 19:49:50 +01:00
bjorn3
864973135a
Implement all vendor intrinsics used by the simd-json crate
2023-11-07 18:10:12 +00:00
bjorn3
ecf79a304a
Implement all vendor intrinsics used by the fimg crate
2023-11-07 13:32:11 +00:00
bjorn3
0a35232c85
Implement all vendor intrinsics used by the httparse crate
2023-11-07 09:42:01 +00:00
bjorn3
61e38ceea7
Implement all SSE intrinsics used by the jpeg-decoder crate
2023-11-07 08:59:16 +00:00
bjorn3
438194980b
Implement all avx2 intrinsics used by the image crate
2023-11-05 19:49:30 +00:00
bjorn3
6a53acefd8
Implement _mm256_permute2f128_ps and _mm256_permute2f128_pd intrinsics
2023-11-05 18:24:39 +00:00
Afonso Bordado
70a6abfd29
Add unsigned saturating add/sub intrinsics for aarch64
2023-11-04 19:37:36 +00:00
Afonso Bordado
88c2e7896b
Implement aarch64 addp intrinsics
2023-11-04 19:11:15 +00:00
Afonso Bordado
1f09bae6a8
Implement min/max neon intrisics
2023-11-04 19:07:13 +00:00
bjorn3
f6a8c3afb5
Add real implementation of _xgetbv()
2023-11-02 16:10:15 +00:00
bjorn3
909513ef74
Use Value instead of CValue in CInlineAsmOperand
2023-11-02 15:32:44 +00:00
bjorn3
c04ceb4342
Fix workaround for the int $$0x29
issue to not crash on empty inline asm
2023-11-02 09:52:21 +00:00
bjorn3
361585e06d
Sync from rust 75b064d26970ca8e7a487072f51835ebb057d575
2023-11-02 09:38:34 +00:00
George Bateman
03c9acdd8f
Support enum variants in offset_of!
2023-10-31 23:25:54 +00:00
bjorn3
48ca2d9703
Implement llvm.fma.v* intrinsics
...
cc #1405
2023-10-31 18:38:31 +00:00
Guillaume Gomez
aed0ed2875
Rollup merge of #117317 - RalfJung:track-caller, r=oli-obk
...
share some track_caller logic between interpret and codegen
Also move the code that implements the track_caller intrinsics out of the core interpreter engine -- it's just a helper creating a const-allocation, doesn't need to be part of the interpreter core.
2023-10-30 17:33:16 +01:00
bjorn3
41dcb52153
Merge commit 'dde58803fd6cbb270c7a437f36a8a3a29fbef679' into sync_cg_clif-2023-10-29
2023-10-29 20:30:50 +00:00
bjorn3
e281e6fdb2
Sync from rust e5cfc55477eceed1317a02189fdf77a4a98f2124
2023-10-29 20:18:11 +00:00
bjorn3
69c6aa560c
Avoid infinite recursion when cranelift is the default codegen backend
2023-10-29 19:45:30 +00:00
bjorn3
35453ac0eb
Stabilize inline asm usage on all platforms
...
But exclude sym operands for now as they are somewhat broken.
2023-10-29 16:40:52 +00:00
bjorn3
b1e705146a
Unconditionally handle int $$0x29 using a shim
2023-10-29 16:08:16 +00:00
bjorn3
827a6d8d9f
Use the LLVM rustc backend as external assembler
...
The LLVM backend is generally available, while the gnu assembler is not
on Windows and many other platforms by default.
2023-10-29 16:06:32 +00:00
Ralf Jung
c6f5090294
share the track_caller handling within a mir::Body
2023-10-28 16:16:15 +02:00
Ralf Jung
bad4be6e29
interpret: call caller_location logic the same way codegen does, and share some code
2023-10-28 15:40:03 +02:00
bors
9e20870c2e
Auto merge of #116609 - eduardosm:bump-stdarch, r=workingjubilee
...
Bump stdarch submodule and remove special handling for LLVM intrinsics that are no longer needed
Bumps stdarch to pull https://github.com/rust-lang/stdarch/pull/1477 , which reimplemented some functions with portable SIMD intrinsics instead of arch specific LLVM intrinsics.
Handling of those LLVM intrinsics is removed from cranelift codegen and miri.
cc `@RalfJung` `@bjorn3`
2023-10-28 11:26:34 +00:00
bjorn3
a302610016
Merge commit '93a5433f17ab5ed48cc88f1e69b0713b16183373' into sync_cg_clif-2023-10-24
2023-10-24 12:22:23 +00:00
bjorn3
a558968dbe
Implement all llvm intrinsics necessary for the image crate
...
Fixes #1379
2023-10-23 14:10:22 +00:00
bjorn3
e5ba1e8417
Implement llvm intrinsics necessary for rav1e
...
Fixes #1399
2023-10-23 14:06:47 +02:00
bjorn3
ed8c515cc4
Avoid collect_and_partition_mono_items call when not doing codegen
...
Fixes #1401
2023-10-23 09:35:15 +00:00
bjorn3
56c6c86661
Simplify FunctionCx::create_stack_slot a bit
2023-10-22 18:10:59 +00:00
bjorn3
55380a5ffd
Dynamically realign local variables with large alignment
...
This works around the lack of a way to specify the alignment of a stack
slot in Cranelift.
Fixes #1230
Fixes #1381
2023-10-22 17:11:11 +00:00