Switch default to new x86_64 backend.
This PR switches the default backend on x86, for both the `cranelift-codegen` crate and for Wasmtime, to the new (`MachInst`-style, `VCode`-based) backend that has been under development and testing for some time now. The old backend is still available by default in builds with the `old-x86-backend` feature, or by requesting `BackendVariant::Legacy` from the appropriate APIs. As part of that switch, it adds some more runtime-configurable plumbing to the testing infrastructure so that tests can be run using the appropriate backend. `clif-util test` is now capable of parsing a backend selector option from filetests and instantiating the correct backend. CI has been updated so that the old x86 backend continues to run its tests, just as we used to run the new x64 backend separately. At some point, we will remove the old x86 backend entirely, once we are satisfied that the new backend has not caused any unforeseen issues and we do not need to revert.
This commit is contained in:
@@ -30,4 +30,3 @@ anyhow = "1.0.32"
|
||||
[features]
|
||||
enable-peepmatic = []
|
||||
experimental_arm32 = []
|
||||
experimental_x64 = []
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %amode_add(i64, i64) -> i64 {
|
||||
block0(v0: i64, v1: i64):
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %f0(b1, i32, i32) -> i32 {
|
||||
; check: pushq %rbp
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %f(i32, i32) -> i32 {
|
||||
block0(v0: i32, v1: i32):
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test run
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %ctz(i64, i64) -> i8 {
|
||||
block0(v0: i64, v1: i64):
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test run
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %reverse_bits_zero() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %f0(i32, i32) -> i32 {
|
||||
block0(v0: i32, v1: i32):
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64 has_lzcnt
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst has_lzcnt
|
||||
|
||||
function %clz(i64) -> i64 {
|
||||
block0(v0: i64):
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %f0(i64, i64) -> i64, i64 {
|
||||
block0(v0: i64, v1: i64):
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64 has_bmi1
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst has_bmi1
|
||||
|
||||
function %ctz(i64) -> i64 {
|
||||
block0(v0: i64):
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test run
|
||||
set avoid_div_traps=false
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %f0(i32, i32) -> i32 {
|
||||
block0(v0: i32, v1: i32):
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test compile
|
||||
set avoid_div_traps=false
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
;; We should get the checked-div/rem sequence (`srem` pseudoinst below) even
|
||||
;; when `avoid_div_traps` above is false (i.e. even when the host is normally
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
test compile
|
||||
set enable_llvm_abi_extensions=true
|
||||
set unwind_info=true
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %f0(i64, i64, i64, i64) -> i64 windows_fastcall {
|
||||
block0(v0: i64, v1: i64, v2: i64, v3: i64):
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %f(f64) -> f64 {
|
||||
block0(v0: f64):
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %f(i32, i64 vmctx) -> i64 {
|
||||
gv0 = vmctx
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test compile
|
||||
set enable_llvm_abi_extensions=true
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %f0(i128, i128) -> i128 {
|
||||
; check: pushq %rbp
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test run
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %test_icmp_eq_i128() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %add_from_mem_u32_1(i64, i32) -> i32 {
|
||||
block0(v0: i64, v1: i32):
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test compile
|
||||
set enable_simd
|
||||
target x86_64 skylake
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst skylake
|
||||
|
||||
function %move_registers(i32x4) -> b8x16 {
|
||||
block0(v0: i32x4):
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64 has_popcnt has_sse42
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst has_popcnt has_sse42
|
||||
|
||||
function %popcnt(i64) -> i64 {
|
||||
block0(v0: i64):
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %popcnt64(i64) -> i64 {
|
||||
block0(v0: i64):
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test compile
|
||||
set enable_probestack=true
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %f1() -> i64 {
|
||||
ss0 = explicit_slot 100000
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test run
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %test_compare_i32() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test compile
|
||||
set enable_llvm_abi_extensions=true
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %f0(i32, i128, i128) -> i128 {
|
||||
; check: pushq %rbp
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test run
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %ishl(i64, i64, i8) -> i64, i64 {
|
||||
block0(v0: i64, v1: i64, v2: i8):
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test run
|
||||
set enable_simd
|
||||
target x86_64 skylake
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst skylake
|
||||
|
||||
function %iadd_i32x4(i32x4, i32x4) -> i32x4 {
|
||||
block0(v0:i32x4, v1:i32x4):
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test compile
|
||||
set enable_simd
|
||||
target x86_64 skylake
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst skylake
|
||||
|
||||
function %bitselect_i16x8() -> i16x8 {
|
||||
block0:
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test run
|
||||
set enable_simd
|
||||
target x86_64 skylake
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst skylake
|
||||
|
||||
function %bitselect_i8x16(i8x16, i8x16, i8x16) -> i8x16 {
|
||||
block0(v0: i8x16, v1: i8x16, v2: i8x16):
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test compile
|
||||
set enable_simd
|
||||
target x86_64 skylake
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst skylake
|
||||
|
||||
function %icmp_ne_32x4(i32x4, i32x4) -> b32x4 {
|
||||
block0(v0: i32x4, v1: i32x4):
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test run
|
||||
set enable_simd
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %icmp_eq_i8x16() -> b8 {
|
||||
block0:
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test run
|
||||
set enable_simd
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %fcvt_from_sint() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test compile
|
||||
set enable_simd
|
||||
target x86_64 has_ssse3 has_sse41
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst has_ssse3 has_sse41
|
||||
|
||||
;; shuffle
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test run
|
||||
set enable_simd
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
;; shuffle
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test compile
|
||||
set enable_simd
|
||||
target x86_64 skylake
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst skylake
|
||||
|
||||
function %bnot_b32x4(b32x4) -> b32x4 {
|
||||
block0(v0: b32x4):
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test run
|
||||
set enable_simd
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %bnot() -> b32 {
|
||||
block0:
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function u0:0(i64 sarg(64)) -> i8 system_v {
|
||||
block0(v0: i64):
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %f0(i64 sret) {
|
||||
block0(v0: i64):
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
test compile
|
||||
set tls_model=elf_gd
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function u0:0(i32) -> i64 {
|
||||
gv0 = symbol colocated tls u1:0
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
function %elide_uextend_add(i32, i32) -> i64 {
|
||||
block0(v0: i32, v1: i32):
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
feature "experimental_x64"
|
||||
target x86_64 machinst
|
||||
|
||||
;; From: https://github.com/bytecodealliance/wasmtime/issues/2670
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test regalloc
|
||||
target i686
|
||||
target i686 legacy
|
||||
|
||||
; %rdi can't be used in a movsbl instruction, so test that the register
|
||||
; allocator can move it to a register that can be.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64 haswell
|
||||
target x86_64 legacy haswell
|
||||
|
||||
function %foo(i64, i64, i64, i32) -> b1 system_v {
|
||||
block3(v0: i64, v1: i64, v2: i64, v3: i32):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; Test the legalization of function signatures.
|
||||
test legalizer
|
||||
target i686
|
||||
target i686 legacy
|
||||
|
||||
; regex: V=v\d+
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; Test the legalization of function signatures.
|
||||
test legalizer
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
; regex: V=v\d+
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
test binemit
|
||||
set opt_level=speed_and_size
|
||||
set emit_all_ones_funcaddrs
|
||||
target i686 haswell
|
||||
target i686 legacy haswell
|
||||
|
||||
; The binary encodings can be verified with the command:
|
||||
;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
test binemit
|
||||
set opt_level=speed_and_size
|
||||
set emit_all_ones_funcaddrs
|
||||
target x86_64 haswell
|
||||
target x86_64 legacy haswell
|
||||
|
||||
; The binary encodings can be verified with the command:
|
||||
;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test compile
|
||||
set enable_probestack=false
|
||||
target i686
|
||||
target i686 legacy
|
||||
|
||||
function u0:0(i32 vmctx) baldrdash_system_v {
|
||||
sig0 = (i32 vmctx, i32 sigid) baldrdash_system_v
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64 baseline
|
||||
target x86_64 legacy baseline
|
||||
|
||||
|
||||
; clz/ctz on 64 bit operands
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test binemit
|
||||
set opt_level=speed_and_size
|
||||
target x86_64 baseline
|
||||
target x86_64 legacy baseline
|
||||
|
||||
; The binary encodings can be verified with the command:
|
||||
;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; Binary emission of 32-bit floating point code.
|
||||
test binemit
|
||||
target i686 haswell
|
||||
target i686 legacy haswell
|
||||
|
||||
; The binary encodings can be verified with the command:
|
||||
;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
; binary emission of x86-32 code.
|
||||
test binemit
|
||||
set opt_level=speed_and_size
|
||||
target i686 haswell
|
||||
target i686 legacy haswell
|
||||
|
||||
; The binary encodings can be verified with the command:
|
||||
;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
; Binary emission of 64-bit floating point code.
|
||||
test binemit
|
||||
set opt_level=speed_and_size
|
||||
target x86_64 haswell
|
||||
target x86_64 legacy haswell
|
||||
|
||||
; The binary encodings can be verified with the command:
|
||||
;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
test binemit
|
||||
set opt_level=speed_and_size
|
||||
set is_pic
|
||||
target x86_64 haswell
|
||||
target x86_64 legacy haswell
|
||||
|
||||
; The binary encodings can be verified with the command:
|
||||
;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test run
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
; this verifies that returning b64 immediates does not result in a segmentation fault, see https://github.com/bytecodealliance/cranelift/issues/911
|
||||
function %test_b64() -> b64 {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
; binary emission of x86-64 code.
|
||||
test binemit
|
||||
set opt_level=speed_and_size
|
||||
target x86_64 haswell
|
||||
target x86_64 legacy haswell
|
||||
|
||||
; The binary encodings can be verified with the command:
|
||||
;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test run
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function %reverse_bits_zero() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
test binemit
|
||||
test run
|
||||
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:323() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test run
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function %br_false() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0(i128) -> i8 fast {
|
||||
block0(v0: i128):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test run
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target i686
|
||||
target i686 legacy
|
||||
|
||||
function u0:0(i32, i32) -> i32 {
|
||||
block0(v0: i32, v1: i32):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test run
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test run
|
||||
target i686
|
||||
target i686 legacy
|
||||
|
||||
function u0:0() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target i686
|
||||
target i686 legacy
|
||||
|
||||
function u0:0() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; Check that floating-point and integer constants equal to zero are optimized correctly.
|
||||
test binemit
|
||||
target i686
|
||||
target i686 legacy
|
||||
|
||||
function %foo() -> f32 fast {
|
||||
block0:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; Check that floating-point constants equal to zero are optimized correctly.
|
||||
test binemit
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function %zero_const_32bit_no_rex() -> f32 fast {
|
||||
block0:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0() -> i128 system_v {
|
||||
block0:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0(i64, i64) -> i128 fast {
|
||||
block0(v0: i64, v1: i64):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test run
|
||||
target x86_64 haswell
|
||||
target x86_64 legacy haswell
|
||||
|
||||
function %test_icmp_eq_i128() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test run
|
||||
target x86_64 haswell
|
||||
target x86_64 legacy haswell
|
||||
|
||||
function %test_imul_i128() -> b1 {
|
||||
block0:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0(i16) -> i8 fast {
|
||||
block0(v0: i16):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0(i64, i64) -> i128 system_v {
|
||||
block0(v0: i64, v1: i64):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test compile
|
||||
set opt_level=speed_and_size
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0(i8) -> i8 fast {
|
||||
block0(v0: i8):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0(i128) system_v {
|
||||
block0(v0: i128):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test compile
|
||||
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0() -> i8 fast {
|
||||
block0:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test compile
|
||||
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:51(i64, i64) system_v {
|
||||
ss0 = explicit_slot 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test legalizer
|
||||
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function %br_icmp(i64) fast {
|
||||
block0(v0: i64):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test compile
|
||||
set opt_level=speed_and_size
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
; regex: V=v\d+
|
||||
; regex: BB=block\d+
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
; regex: V=v\d+
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
; Test legalization of a non-colocated call in 64-bit non-PIC mode.
|
||||
test legalizer
|
||||
set opt_level=speed_and_size
|
||||
target x86_64 haswell
|
||||
target x86_64 legacy haswell
|
||||
|
||||
function %call() {
|
||||
fn0 = %foo()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
; regex: V=v\d+
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
; Test the custom legalizations.
|
||||
test legalizer
|
||||
target i686
|
||||
target x86_64
|
||||
target i686 legacy
|
||||
target x86_64 legacy
|
||||
|
||||
; regex: V=v\d+
|
||||
; regex: BB=block\d+
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
test legalizer
|
||||
; See also legalize-div.clif.
|
||||
set avoid_div_traps=1
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
; regex: V=v\d+
|
||||
; regex: BB=block\d+
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
test legalizer
|
||||
; See also legalize-div-traps.clif.
|
||||
set avoid_div_traps=0
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
; regex: V=v\d+
|
||||
; regex: BB=block\d+
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; Test the legalization of f64const.
|
||||
test legalizer
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
; regex: V=v\d+
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0(i16) -> f64 fast {
|
||||
block0(v0: i16):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test legalizer
|
||||
set enable_heap_access_spectre_mitigation=false
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
; Test legalization for various forms of heap addresses.
|
||||
; regex: BB=block\d+
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; Test the legalization of i128 instructions on x86_64.
|
||||
test legalizer
|
||||
target x86_64 haswell
|
||||
target x86_64 legacy haswell
|
||||
|
||||
; regex: V=v\d+
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; Test the legalization of i64 instructions on x86_32.
|
||||
test legalizer
|
||||
target i686 haswell
|
||||
target i686 legacy haswell
|
||||
|
||||
; regex: V=v\d+
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
; regex: V=v\d+
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test compile
|
||||
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0(i64) system_v {
|
||||
ss0 = explicit_slot 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test compile
|
||||
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0(i64, i8, i8) system_v {
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test compile
|
||||
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0(i64, i8) system_v {
|
||||
ss0 = explicit_slot 1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; Test the custom legalization of ineg.i64 on x86_64.
|
||||
test legalizer
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function %ineg_legalized_i64() {
|
||||
block0:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0(i64, i64) -> i64 {
|
||||
block0(v0: i64, v1: i64):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target i686
|
||||
target i686 legacy
|
||||
|
||||
function u0:0(i32, i32) -> i32 {
|
||||
block0(v0: i32, v1: i32):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test compile
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function u0:0(i128) -> i64, i64 fast {
|
||||
; check: block0(v4: i64 [%rdi], v5: i64 [%rsi], v8: i64 [%rbp]):
|
||||
|
||||
@@ -2,7 +2,7 @@ test legalizer
|
||||
|
||||
; Pre-SSE 4.1, we need to use runtime library calls for floating point rounding operations.
|
||||
set is_pic
|
||||
target x86_64
|
||||
target x86_64 legacy
|
||||
|
||||
function %floor(f32) -> f32 {
|
||||
block0(v0: f32):
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user