From 368094a95b3ded7586bbc77156fbe6ff9f4413d2 Mon Sep 17 00:00:00 2001 From: Andrew Brown Date: Mon, 9 Mar 2020 12:15:02 -0700 Subject: [PATCH] Add SIMD load_complex --- .../codegen/meta/src/isa/x86/encodings.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/cranelift/codegen/meta/src/isa/x86/encodings.rs b/cranelift/codegen/meta/src/isa/x86/encodings.rs index 946d7bc3f9..b9baa874f9 100644 --- a/cranelift/codegen/meta/src/isa/x86/encodings.rs +++ b/cranelift/codegen/meta/src/isa/x86/encodings.rs @@ -1582,6 +1582,7 @@ fn define_simd( let imul = shared.by_name("imul"); let ishl_imm = shared.by_name("ishl_imm"); let load = shared.by_name("load"); + let load_complex = shared.by_name("load_complex"); let raw_bitcast = shared.by_name("raw_bitcast"); let regfill = shared.by_name("regfill"); let regmove = shared.by_name("regmove"); @@ -1625,6 +1626,9 @@ fn define_simd( let rec_fld = r.template("fld"); let rec_fldDisp32 = r.template("fldDisp32"); let rec_fldDisp8 = r.template("fldDisp8"); + let rec_fldWithIndex = r.template("fldWithIndex"); + let rec_fldWithIndexDisp32 = r.template("fldWithIndexDisp32"); + let rec_fldWithIndexDisp8 = r.template("fldWithIndexDisp8"); let rec_fregfill32 = r.template("fregfill32"); let rec_fregspill32 = r.template("fregspill32"); let rec_frmov = r.template("frmov"); @@ -1856,6 +1860,21 @@ fn define_simd( e.enc_32_64(bound_load.clone(), rec_fldDisp8.opcodes(&MOVUPS_LOAD)); e.enc_32_64(bound_load, rec_fldDisp32.opcodes(&MOVUPS_LOAD)); + // Load complex + let bound_load_complex = load_complex.bind(vector(ty, sse_vector_size)); + e.enc_32_64( + bound_load_complex.clone(), + rec_fldWithIndex.opcodes(&MOVUPS_LOAD), + ); + e.enc_32_64( + bound_load_complex.clone(), + rec_fldWithIndexDisp8.opcodes(&MOVUPS_LOAD), + ); + e.enc_32_64( + bound_load_complex, + rec_fldWithIndexDisp32.opcodes(&MOVUPS_LOAD), + ); + // Spill let bound_spill = spill.bind(vector(ty, sse_vector_size)); e.enc_32_64(bound_spill, rec_fspillSib32.opcodes(&MOVUPS_STORE));