Remove the vconst instruction and the UnaryImmVector format.
No instruction sets actually have single instructions for materializing vector constants. You always need to use a constant pool. Cretonne doesn't have constant pools yet, but it will in the future, and that is how vector constants should be represented.
This commit is contained in:
@@ -8,7 +8,7 @@ in this module.
|
||||
from __future__ import absolute_import
|
||||
from cdsl.formats import InstructionFormat
|
||||
from cdsl.operands import VALUE, VARIABLE_ARGS
|
||||
from .immediates import imm64, uimm8, ieee32, ieee64, immvector, intcc, floatcc
|
||||
from .immediates import imm64, uimm8, ieee32, ieee64, intcc, floatcc
|
||||
from .entities import ebb, sig_ref, func_ref, jump_table
|
||||
|
||||
Nullary = InstructionFormat()
|
||||
@@ -17,7 +17,6 @@ Unary = InstructionFormat(VALUE)
|
||||
UnaryImm = InstructionFormat(imm64)
|
||||
UnaryIeee32 = InstructionFormat(ieee32)
|
||||
UnaryIeee64 = InstructionFormat(ieee64)
|
||||
UnaryImmVector = InstructionFormat(immvector, boxed_storage=True)
|
||||
UnarySplit = InstructionFormat(VALUE, multiple_results=True)
|
||||
|
||||
Binary = InstructionFormat(VALUE, VALUE)
|
||||
|
||||
@@ -27,12 +27,6 @@ ieee32 = ImmediateKind('ieee32', 'A 32-bit immediate floating point number.')
|
||||
#: IEEE 754-2008 binary64 interchange format.
|
||||
ieee64 = ImmediateKind('ieee64', 'A 64-bit immediate floating point number.')
|
||||
|
||||
#: A large SIMD vector constant.
|
||||
immvector = ImmediateKind(
|
||||
'immvector',
|
||||
'An immediate SIMD vector.',
|
||||
rust_type='ImmVector')
|
||||
|
||||
#: A condition code for comparing integer values.
|
||||
#:
|
||||
#: This enumerated operand kind is used for the :cton:inst:`icmp` instruction
|
||||
|
||||
@@ -9,7 +9,7 @@ from cdsl.operands import Operand, VARIABLE_ARGS
|
||||
from cdsl.typevar import TypeVar
|
||||
from cdsl.instructions import Instruction, InstructionGroup
|
||||
from base.types import i8, f32, f64, b1
|
||||
from base.immediates import imm64, uimm8, ieee32, ieee64, immvector
|
||||
from base.immediates import imm64, uimm8, ieee32, ieee64
|
||||
from base.immediates import intcc, floatcc
|
||||
from base import entities
|
||||
import base.formats # noqa
|
||||
@@ -196,16 +196,6 @@ f64const = Instruction(
|
||||
""",
|
||||
ins=N, outs=a)
|
||||
|
||||
N = Operand('N', immvector)
|
||||
a = Operand('a', TxN, doc='A constant vector value')
|
||||
vconst = Instruction(
|
||||
'vconst', r"""
|
||||
Vector constant (floating point or integer).
|
||||
|
||||
Create a SIMD vector value where the lanes don't have to be identical.
|
||||
""",
|
||||
ins=N, outs=a)
|
||||
|
||||
#
|
||||
# Generics.
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user