s_flbit_i32_b64 (#3033)

* s_flbit_i32_b64

* Split FindUMsb64 into two 32bit ops
This commit is contained in:
Marcin Mikołajczyk
2025-06-05 23:33:25 +02:00
committed by GitHub
parent 43bf4ed1bc
commit fff3bf9917
7 changed files with 40 additions and 3 deletions

View File

@@ -1546,8 +1546,15 @@ U32 IREmitter::FindSMsb(const U32& value) {
return Inst<U32>(Opcode::FindSMsb32, value);
}
U32 IREmitter::FindUMsb(const U32& value) {
return Inst<U32>(Opcode::FindUMsb32, value);
U32 IREmitter::FindUMsb(const U32U64& value) {
switch (value.Type()) {
case Type::U32:
return Inst<U32>(Opcode::FindUMsb32, value);
case Type::U64:
return Inst<U32>(Opcode::FindUMsb64, value);
default:
ThrowInvalidType(value.Type());
}
}
U32 IREmitter::FindILsb(const U32U64& value) {

View File

@@ -266,7 +266,7 @@ public:
[[nodiscard]] U32 BitwiseNot(const U32& value);
[[nodiscard]] U32 FindSMsb(const U32& value);
[[nodiscard]] U32 FindUMsb(const U32& value);
[[nodiscard]] U32 FindUMsb(const U32U64& value);
[[nodiscard]] U32 FindILsb(const U32U64& value);
[[nodiscard]] U32 SMin(const U32& a, const U32& b);
[[nodiscard]] U32 UMin(const U32& a, const U32& b);

View File

@@ -349,6 +349,7 @@ OPCODE(BitwiseNot32, U32, U32,
OPCODE(FindSMsb32, U32, U32, )
OPCODE(FindUMsb32, U32, U32, )
OPCODE(FindUMsb64, U32, U64, )
OPCODE(FindILsb32, U32, U32, )
OPCODE(FindILsb64, U32, U64, )
OPCODE(SMin32, U32, U32, U32, )