| Index: src/IceAssemblerARM32.cpp
|
| diff --git a/src/IceAssemblerARM32.cpp b/src/IceAssemblerARM32.cpp
|
| index d21bd1b11cc498cc57542e187227dd806cb72b9f..71e5c6aeb347af7a007cbbc044e5fcab14d772b2 100644
|
| --- a/src/IceAssemblerARM32.cpp
|
| +++ b/src/IceAssemblerARM32.cpp
|
| @@ -2410,6 +2410,18 @@ void AssemblerARM32::vandq(const Operand *OpQd, const Operand *OpQm,
|
| emitSIMDqqq(VandqOpcode, ElmtTy, OpQd, OpQm, OpQn, Vandq);
|
| }
|
|
|
| +void AssemblerARM32::vbslq(const Operand *OpQd, const Operand *OpQm,
|
| + const Operand *OpQn) {
|
| + // VBSL (register) - ARM section A8.8.290, encoding A1:
|
| + // vbsl <Qd>, <Qn>, <Qm>
|
| + //
|
| + // 111100110D01nnn0ddd00001N1M1mmm0 where Dddd=OpQd, Nnnn=OpQm, and Mmmm=OpQm.
|
| + constexpr const char *Vbslq = "vbslq";
|
| + constexpr IValueT VbslqOpcode = B24 | B20 | B8 | B4;
|
| + constexpr Type ElmtTy = IceType_i8; // emits sz=0
|
| + emitSIMDqqq(VbslqOpcode, ElmtTy, OpQd, OpQm, OpQn, Vbslq);
|
| +}
|
| +
|
| void AssemblerARM32::vcmpd(const Operand *OpDd, const Operand *OpDm,
|
| CondARM32::Cond Cond) {
|
| constexpr const char *Vcmpd = "vcmpd";
|
|
|