A32: Implement ASIMD VMAX, VMIN (floating-point)

This commit is contained in:
MerryMage
2020-06-20 01:18:17 +01:00
parent 8d067d5d60
commit bb4f3aa407
7 changed files with 100 additions and 52 deletions

View File

@@ -2356,22 +2356,22 @@ U128 IREmitter::FPVectorGreaterEqual(size_t esize, const U128& a, const U128& b,
UNREACHABLE();
}
U128 IREmitter::FPVectorMax(size_t esize, const U128& a, const U128& b) {
U128 IREmitter::FPVectorMax(size_t esize, const U128& a, const U128& b, bool fpcr_controlled) {
switch (esize) {
case 32:
return Inst<U128>(Opcode::FPVectorMax32, a, b);
return Inst<U128>(Opcode::FPVectorMax32, a, b, Imm1(fpcr_controlled));
case 64:
return Inst<U128>(Opcode::FPVectorMax64, a, b);
return Inst<U128>(Opcode::FPVectorMax64, a, b, Imm1(fpcr_controlled));
}
UNREACHABLE();
}
U128 IREmitter::FPVectorMin(size_t esize, const U128& a, const U128& b) {
U128 IREmitter::FPVectorMin(size_t esize, const U128& a, const U128& b, bool fpcr_controlled) {
switch (esize) {
case 32:
return Inst<U128>(Opcode::FPVectorMin32, a, b);
return Inst<U128>(Opcode::FPVectorMin32, a, b, Imm1(fpcr_controlled));
case 64:
return Inst<U128>(Opcode::FPVectorMin64, a, b);
return Inst<U128>(Opcode::FPVectorMin64, a, b, Imm1(fpcr_controlled));
}
UNREACHABLE();
}