|
|
@ -1821,13 +1821,15 @@ private: |
|
|
Expression HMergeH0(Operation operation) { |
|
|
Expression HMergeH0(Operation operation) { |
|
|
const std::string dest = VisitOperand(operation, 0).AsUint(); |
|
|
const std::string dest = VisitOperand(operation, 0).AsUint(); |
|
|
const std::string src = VisitOperand(operation, 1).AsUint(); |
|
|
const std::string src = VisitOperand(operation, 1).AsUint(); |
|
|
return {fmt::format("bitfieldInsert({}, {}, 0, 16)", dest, src), Type::Uint}; |
|
|
|
|
|
|
|
|
return {fmt::format("vec2(unpackHalf2x16({}).x, unpackHalf2x16({}).y)", src, dest), |
|
|
|
|
|
Type::HalfFloat}; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Expression HMergeH1(Operation operation) { |
|
|
Expression HMergeH1(Operation operation) { |
|
|
const std::string dest = VisitOperand(operation, 0).AsUint(); |
|
|
const std::string dest = VisitOperand(operation, 0).AsUint(); |
|
|
const std::string src = VisitOperand(operation, 1).AsUint(); |
|
|
const std::string src = VisitOperand(operation, 1).AsUint(); |
|
|
return {fmt::format("bitfieldInsert({}, {}, 16, 16)", dest, src), Type::Uint}; |
|
|
|
|
|
|
|
|
return {fmt::format("vec2(unpackHalf2x16({}).x, unpackHalf2x16({}).y)", dest, src), |
|
|
|
|
|
Type::HalfFloat}; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Expression HPack2(Operation operation) { |
|
|
Expression HPack2(Operation operation) { |
|
|
|