mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-02 07:22:24 +00:00
clang-format
This commit is contained in:
parent
301f51e57d
commit
418f7daa57
@ -10,8 +10,8 @@ namespace Detail {
|
|||||||
|
|
||||||
template <typename Func, typename OutputIt, std::size_t N, std::size_t Level, typename... ArgLists>
|
template <typename Func, typename OutputIt, std::size_t N, std::size_t Level, typename... ArgLists>
|
||||||
void CartesianInvokeImpl(Func func, OutputIt out_it,
|
void CartesianInvokeImpl(Func func, OutputIt out_it,
|
||||||
std::tuple<typename ArgLists::const_iterator...>& arglists_its,
|
std::tuple<typename ArgLists::const_iterator...>& arglists_its,
|
||||||
const std::tuple<const ArgLists&...>& arglists_tuple) {
|
const std::tuple<const ArgLists&...>& arglists_tuple) {
|
||||||
if constexpr (Level == N) {
|
if constexpr (Level == N) {
|
||||||
auto get_tuple = [&]<std::size_t... I>(std::index_sequence<I...>) {
|
auto get_tuple = [&]<std::size_t... I>(std::index_sequence<I...>) {
|
||||||
return std::forward_as_tuple(*std::get<I>(arglists_its)...);
|
return std::forward_as_tuple(*std::get<I>(arglists_its)...);
|
||||||
@ -37,7 +37,7 @@ void CartesianInvoke(Func func, OutputIt out_it, const ArgLists&... arg_lists) {
|
|||||||
|
|
||||||
std::tuple<typename ArgLists::const_iterator...> arglists_it;
|
std::tuple<typename ArgLists::const_iterator...> arglists_it;
|
||||||
Detail::CartesianInvokeImpl<Func, OutputIt, N, 0, ArgLists...>(func, out_it, arglists_it,
|
Detail::CartesianInvokeImpl<Func, OutputIt, N, 0, ArgLists...>(func, out_it, arglists_it,
|
||||||
arglists_tuple);
|
arglists_tuple);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Common
|
} // namespace Common
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <tuple>
|
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
|
#include <tuple>
|
||||||
|
|
||||||
namespace Common {
|
namespace Common {
|
||||||
|
|
||||||
|
@ -6,224 +6,324 @@
|
|||||||
|
|
||||||
namespace Shader::IR::ComputeValue {
|
namespace Shader::IR::ComputeValue {
|
||||||
|
|
||||||
static void CommonCompositeConstruct(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1) {
|
static void CommonCompositeConstruct(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
const auto op = [](const ImmValue& a, const ImmValue& b) {
|
const ImmValueList& arg1) {
|
||||||
return ImmValue(a, b);
|
const auto op = [](const ImmValue& a, const ImmValue& b) { return ImmValue(a, b); };
|
||||||
};
|
|
||||||
Common::CartesianInvoke(op, std::insert_iterator(inst_values, inst_values.begin()), arg0, arg1);
|
Common::CartesianInvoke(op, std::insert_iterator(inst_values, inst_values.begin()), arg0, arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CommonCompositeConstruct(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2) {
|
static void CommonCompositeConstruct(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1, const ImmValueList& arg2) {
|
||||||
const auto op = [](const ImmValue& a, const ImmValue& b, const ImmValue& c) {
|
const auto op = [](const ImmValue& a, const ImmValue& b, const ImmValue& c) {
|
||||||
return ImmValue(a, b, c);
|
return ImmValue(a, b, c);
|
||||||
};
|
};
|
||||||
Common::CartesianInvoke(op, std::insert_iterator(inst_values, inst_values.begin()), arg0, arg1, arg2);
|
Common::CartesianInvoke(op, std::insert_iterator(inst_values, inst_values.begin()), arg0, arg1,
|
||||||
|
arg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CommonCompositeConstruct(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2, const ImmValueList& arg3) {
|
static void CommonCompositeConstruct(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1, const ImmValueList& arg2,
|
||||||
|
const ImmValueList& arg3) {
|
||||||
const auto op = [](const ImmValue& a, const ImmValue& b, const ImmValue& c, const ImmValue& d) {
|
const auto op = [](const ImmValue& a, const ImmValue& b, const ImmValue& c, const ImmValue& d) {
|
||||||
return ImmValue(a, b, c, d);
|
return ImmValue(a, b, c, d);
|
||||||
};
|
};
|
||||||
Common::CartesianInvoke(op, std::insert_iterator(inst_values, inst_values.begin()), arg0, arg1, arg2, arg3);
|
Common::CartesianInvoke(op, std::insert_iterator(inst_values, inst_values.begin()), arg0, arg1,
|
||||||
|
arg2, arg3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructU32x2(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1) {
|
void DoCompositeConstructU32x2(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1) {
|
||||||
CommonCompositeConstruct(inst_values, arg0, arg1);
|
CommonCompositeConstruct(inst_values, arg0, arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructU32x3(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2) {
|
void DoCompositeConstructU32x3(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1, const ImmValueList& arg2) {
|
||||||
CommonCompositeConstruct(inst_values, arg0, arg1, arg2);
|
CommonCompositeConstruct(inst_values, arg0, arg1, arg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructU32x4(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2, const ImmValueList& arg3) {
|
void DoCompositeConstructU32x4(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1, const ImmValueList& arg2,
|
||||||
|
const ImmValueList& arg3) {
|
||||||
CommonCompositeConstruct(inst_values, arg0, arg1, arg2, arg3);
|
CommonCompositeConstruct(inst_values, arg0, arg1, arg2, arg3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructU32x2x2(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1) {
|
void DoCompositeConstructU32x2x2(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
Common::CartesianInvoke(ImmValue::CompositeFrom2x2, std::insert_iterator(inst_values, inst_values.begin()), arg0, arg1);
|
const ImmValueList& arg1) {
|
||||||
|
Common::CartesianInvoke(ImmValue::CompositeFrom2x2,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), arg0, arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeExtractU32x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx) {
|
void DoCompositeExtractU32x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Extract, std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Extract,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeExtractU32x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx) {
|
void DoCompositeExtractU32x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Extract, std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Extract,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeExtractU32x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx) {
|
void DoCompositeExtractU32x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Extract, std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Extract,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeInsertU32x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx) {
|
void DoCompositeInsertU32x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Insert, std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
const ImmValueList& val, const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Insert,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeInsertU32x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx) {
|
void DoCompositeInsertU32x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Insert, std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
const ImmValueList& val, const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Insert,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeInsertU32x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx) {
|
void DoCompositeInsertU32x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Insert, std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
const ImmValueList& val, const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Insert,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeShuffleU32x2(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1) {
|
void DoCompositeShuffleU32x2(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1) {
|
||||||
UNREACHABLE_MSG("Unimplemented");
|
UNREACHABLE_MSG("Unimplemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeShuffleU32x3(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2) {
|
void DoCompositeShuffleU32x3(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2) {
|
||||||
UNREACHABLE_MSG("Unimplemented");
|
UNREACHABLE_MSG("Unimplemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeShuffleU32x4(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2, const ImmValueList& idx3) {
|
void DoCompositeShuffleU32x4(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2,
|
||||||
|
const ImmValueList& idx3) {
|
||||||
UNREACHABLE_MSG("Unimplemented");
|
UNREACHABLE_MSG("Unimplemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructF16x2(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1) {
|
void DoCompositeConstructF16x2(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1) {
|
||||||
CommonCompositeConstruct(inst_values, arg0, arg1);
|
CommonCompositeConstruct(inst_values, arg0, arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructF16x3(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2) {
|
void DoCompositeConstructF16x3(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1, const ImmValueList& arg2) {
|
||||||
CommonCompositeConstruct(inst_values, arg0, arg1, arg2);
|
CommonCompositeConstruct(inst_values, arg0, arg1, arg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructF16x4(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2, const ImmValueList& arg3) {
|
void DoCompositeConstructF16x4(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1, const ImmValueList& arg2,
|
||||||
|
const ImmValueList& arg3) {
|
||||||
CommonCompositeConstruct(inst_values, arg0, arg1, arg2, arg3);
|
CommonCompositeConstruct(inst_values, arg0, arg1, arg2, arg3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructF32x2x2(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1) {
|
void DoCompositeConstructF32x2x2(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
Common::CartesianInvoke(ImmValue::CompositeFrom2x2, std::insert_iterator(inst_values, inst_values.begin()), arg0, arg1);
|
const ImmValueList& arg1) {
|
||||||
|
Common::CartesianInvoke(ImmValue::CompositeFrom2x2,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), arg0, arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeExtractF16x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx) {
|
void DoCompositeExtractF16x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Extract, std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Extract,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeExtractF16x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx) {
|
void DoCompositeExtractF16x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Extract, std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Extract,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeExtractF16x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx) {
|
void DoCompositeExtractF16x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Extract, std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Extract,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeInsertF16x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx) {
|
void DoCompositeInsertF16x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Insert, std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
const ImmValueList& val, const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Insert,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeInsertF16x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx) {
|
void DoCompositeInsertF16x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Insert, std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
const ImmValueList& val, const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Insert,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeInsertF16x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx) {
|
void DoCompositeInsertF16x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Insert, std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
const ImmValueList& val, const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Insert,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeShuffleF16x2(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1) {
|
void DoCompositeShuffleF16x2(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1) {
|
||||||
UNREACHABLE_MSG("Unimplemented");
|
UNREACHABLE_MSG("Unimplemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeShuffleF16x3(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2) {
|
void DoCompositeShuffleF16x3(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2) {
|
||||||
UNREACHABLE_MSG("Unimplemented");
|
UNREACHABLE_MSG("Unimplemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeShuffleF16x4(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2, const ImmValueList& idx3) {
|
void DoCompositeShuffleF16x4(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2,
|
||||||
|
const ImmValueList& idx3) {
|
||||||
UNREACHABLE_MSG("Unimplemented");
|
UNREACHABLE_MSG("Unimplemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructF32x2(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1) {
|
void DoCompositeConstructF32x2(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1) {
|
||||||
CommonCompositeConstruct(inst_values, arg0, arg1);
|
CommonCompositeConstruct(inst_values, arg0, arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructF32x3(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2) {
|
void DoCompositeConstructF32x3(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1, const ImmValueList& arg2) {
|
||||||
CommonCompositeConstruct(inst_values, arg0, arg1, arg2);
|
CommonCompositeConstruct(inst_values, arg0, arg1, arg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructF32x4(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2, const ImmValueList& arg3) {
|
void DoCompositeConstructF32x4(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1, const ImmValueList& arg2,
|
||||||
|
const ImmValueList& arg3) {
|
||||||
CommonCompositeConstruct(inst_values, arg0, arg1, arg2, arg3);
|
CommonCompositeConstruct(inst_values, arg0, arg1, arg2, arg3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeExtractF32x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx) {
|
void DoCompositeExtractF32x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Extract, std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Extract,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeExtractF32x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx) {
|
void DoCompositeExtractF32x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Extract, std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Extract,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeExtractF32x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx) {
|
void DoCompositeExtractF32x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Extract, std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Extract,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeInsertF32x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx) {
|
void DoCompositeInsertF32x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Insert, std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
const ImmValueList& val, const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Insert,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeInsertF32x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx) {
|
void DoCompositeInsertF32x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Insert, std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
const ImmValueList& val, const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Insert,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeInsertF32x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx) {
|
void DoCompositeInsertF32x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Insert, std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
const ImmValueList& val, const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Insert,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeShuffleF32x2(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1) {
|
void DoCompositeShuffleF32x2(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1) {
|
||||||
UNREACHABLE_MSG("Unimplemented");
|
UNREACHABLE_MSG("Unimplemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeShuffleF32x3(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2) {
|
void DoCompositeShuffleF32x3(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2) {
|
||||||
UNREACHABLE_MSG("Unimplemented");
|
UNREACHABLE_MSG("Unimplemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeShuffleF32x4(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2, const ImmValueList& idx3) {
|
void DoCompositeShuffleF32x4(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2,
|
||||||
|
const ImmValueList& idx3) {
|
||||||
UNREACHABLE_MSG("Unimplemented");
|
UNREACHABLE_MSG("Unimplemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructF64x2(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1) {
|
void DoCompositeConstructF64x2(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1) {
|
||||||
CommonCompositeConstruct(inst_values, arg0, arg1);
|
CommonCompositeConstruct(inst_values, arg0, arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructF64x3(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2) {
|
void DoCompositeConstructF64x3(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1, const ImmValueList& arg2) {
|
||||||
CommonCompositeConstruct(inst_values, arg0, arg1, arg2);
|
CommonCompositeConstruct(inst_values, arg0, arg1, arg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeConstructF64x4(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2, const ImmValueList& arg3) {
|
void DoCompositeConstructF64x4(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
|
const ImmValueList& arg1, const ImmValueList& arg2,
|
||||||
|
const ImmValueList& arg3) {
|
||||||
CommonCompositeConstruct(inst_values, arg0, arg1, arg2, arg3);
|
CommonCompositeConstruct(inst_values, arg0, arg1, arg2, arg3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeExtractF64x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx) {
|
void DoCompositeExtractF64x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Extract, std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Extract,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeExtractF64x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx) {
|
void DoCompositeExtractF64x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Extract, std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Extract,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeExtractF64x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx) {
|
void DoCompositeExtractF64x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Extract, std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Extract,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeInsertF64x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx) {
|
void DoCompositeInsertF64x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Insert, std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
const ImmValueList& val, const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Insert,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeInsertF64x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx) {
|
void DoCompositeInsertF64x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Insert, std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
const ImmValueList& val, const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Insert,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeInsertF64x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx) {
|
void DoCompositeInsertF64x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
Common::CartesianInvoke(ImmValue::Insert, std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
const ImmValueList& val, const ImmValueList& idx) {
|
||||||
|
Common::CartesianInvoke(ImmValue::Insert,
|
||||||
|
std::insert_iterator(inst_values, inst_values.begin()), vec, val, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeShuffleF64x2(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1) {
|
void DoCompositeShuffleF64x2(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1) {
|
||||||
UNREACHABLE_MSG("Unimplemented");
|
UNREACHABLE_MSG("Unimplemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeShuffleF64x3(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2) {
|
void DoCompositeShuffleF64x3(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2) {
|
||||||
UNREACHABLE_MSG("Unimplemented");
|
UNREACHABLE_MSG("Unimplemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoCompositeShuffleF64x4(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2, const ImmValueList& idx3) {
|
void DoCompositeShuffleF64x4(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2,
|
||||||
|
const ImmValueList& idx3) {
|
||||||
UNREACHABLE_MSG("Unimplemented");
|
UNREACHABLE_MSG("Unimplemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,58 +7,128 @@
|
|||||||
|
|
||||||
namespace Shader::IR::ComputeValue {
|
namespace Shader::IR::ComputeValue {
|
||||||
|
|
||||||
void DoCompositeConstructU32x2(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1);
|
void DoCompositeConstructU32x2(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeConstructU32x3(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2);
|
const ImmValueList& arg1);
|
||||||
void DoCompositeConstructU32x4(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2, const ImmValueList& arg3);
|
void DoCompositeConstructU32x3(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeConstructU32x2x2(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1);
|
const ImmValueList& arg1, const ImmValueList& arg2);
|
||||||
void DoCompositeExtractU32x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx);
|
void DoCompositeConstructU32x4(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeExtractU32x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx);
|
const ImmValueList& arg1, const ImmValueList& arg2,
|
||||||
void DoCompositeExtractU32x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx);
|
const ImmValueList& arg3);
|
||||||
void DoCompositeInsertU32x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx);
|
void DoCompositeConstructU32x2x2(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeInsertU32x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx);
|
const ImmValueList& arg1);
|
||||||
void DoCompositeInsertU32x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx);
|
void DoCompositeExtractU32x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
void DoCompositeShuffleU32x2(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1);
|
const ImmValueList& idx);
|
||||||
void DoCompositeShuffleU32x3(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2);
|
void DoCompositeExtractU32x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
void DoCompositeShuffleU32x4(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2, const ImmValueList& idx3);
|
const ImmValueList& idx);
|
||||||
|
void DoCompositeExtractU32x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& idx);
|
||||||
|
void DoCompositeInsertU32x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& val, const ImmValueList& idx);
|
||||||
|
void DoCompositeInsertU32x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& val, const ImmValueList& idx);
|
||||||
|
void DoCompositeInsertU32x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& val, const ImmValueList& idx);
|
||||||
|
void DoCompositeShuffleU32x2(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1);
|
||||||
|
void DoCompositeShuffleU32x3(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2);
|
||||||
|
void DoCompositeShuffleU32x4(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2,
|
||||||
|
const ImmValueList& idx3);
|
||||||
|
|
||||||
void DoCompositeConstructF16x2(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1);
|
void DoCompositeConstructF16x2(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeConstructF16x3(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2);
|
const ImmValueList& arg1);
|
||||||
void DoCompositeConstructF16x4(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2, const ImmValueList& arg3);
|
void DoCompositeConstructF16x3(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeExtractF16x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx);
|
const ImmValueList& arg1, const ImmValueList& arg2);
|
||||||
void DoCompositeExtractF16x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx);
|
void DoCompositeConstructF16x4(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeExtractF16x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx);
|
const ImmValueList& arg1, const ImmValueList& arg2,
|
||||||
void DoCompositeInsertF16x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx);
|
const ImmValueList& arg3);
|
||||||
void DoCompositeInsertF16x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx);
|
void DoCompositeExtractF16x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
void DoCompositeInsertF16x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx);
|
const ImmValueList& idx);
|
||||||
void DoCompositeShuffleF16x2(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1);
|
void DoCompositeExtractF16x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
void DoCompositeShuffleF16x3(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2);
|
const ImmValueList& idx);
|
||||||
void DoCompositeShuffleF16x4(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2, const ImmValueList& idx3);
|
void DoCompositeExtractF16x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& idx);
|
||||||
|
void DoCompositeInsertF16x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& val, const ImmValueList& idx);
|
||||||
|
void DoCompositeInsertF16x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& val, const ImmValueList& idx);
|
||||||
|
void DoCompositeInsertF16x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& val, const ImmValueList& idx);
|
||||||
|
void DoCompositeShuffleF16x2(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1);
|
||||||
|
void DoCompositeShuffleF16x3(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2);
|
||||||
|
void DoCompositeShuffleF16x4(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2,
|
||||||
|
const ImmValueList& idx3);
|
||||||
|
|
||||||
void DoCompositeConstructF32x2(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1);
|
void DoCompositeConstructF32x2(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeConstructF32x3(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2);
|
const ImmValueList& arg1);
|
||||||
void DoCompositeConstructF32x4(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2, const ImmValueList& arg3);
|
void DoCompositeConstructF32x3(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeConstructF32x2x2(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1);
|
const ImmValueList& arg1, const ImmValueList& arg2);
|
||||||
void DoCompositeExtractF32x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx);
|
void DoCompositeConstructF32x4(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeExtractF32x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx);
|
const ImmValueList& arg1, const ImmValueList& arg2,
|
||||||
void DoCompositeExtractF32x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx);
|
const ImmValueList& arg3);
|
||||||
void DoCompositeInsertF32x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx);
|
void DoCompositeConstructF32x2x2(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeInsertF32x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx);
|
const ImmValueList& arg1);
|
||||||
void DoCompositeInsertF32x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx);
|
void DoCompositeExtractF32x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
void DoCompositeShuffleF32x2(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1);
|
const ImmValueList& idx);
|
||||||
void DoCompositeShuffleF32x3(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2);
|
void DoCompositeExtractF32x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
void DoCompositeShuffleF32x4(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2, const ImmValueList& idx3);
|
const ImmValueList& idx);
|
||||||
|
void DoCompositeExtractF32x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& idx);
|
||||||
|
void DoCompositeInsertF32x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& val, const ImmValueList& idx);
|
||||||
|
void DoCompositeInsertF32x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& val, const ImmValueList& idx);
|
||||||
|
void DoCompositeInsertF32x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& val, const ImmValueList& idx);
|
||||||
|
void DoCompositeShuffleF32x2(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1);
|
||||||
|
void DoCompositeShuffleF32x3(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2);
|
||||||
|
void DoCompositeShuffleF32x4(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2,
|
||||||
|
const ImmValueList& idx3);
|
||||||
|
|
||||||
void DoCompositeConstructF64x2(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1);
|
void DoCompositeConstructF64x2(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeConstructF64x3(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2);
|
const ImmValueList& arg1);
|
||||||
void DoCompositeConstructF64x4(ImmValueList& inst_values, const ImmValueList& arg0, const ImmValueList& arg1, const ImmValueList& arg2, const ImmValueList& arg3);
|
void DoCompositeConstructF64x3(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeExtractF64x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx);
|
const ImmValueList& arg1, const ImmValueList& arg2);
|
||||||
void DoCompositeExtractF64x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx);
|
void DoCompositeConstructF64x4(ImmValueList& inst_values, const ImmValueList& arg0,
|
||||||
void DoCompositeExtractF64x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& idx);
|
const ImmValueList& arg1, const ImmValueList& arg2,
|
||||||
void DoCompositeInsertF64x2(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx);
|
const ImmValueList& arg3);
|
||||||
void DoCompositeInsertF64x3(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx);
|
void DoCompositeExtractF64x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
void DoCompositeInsertF64x4(ImmValueList& inst_values, const ImmValueList& vec, const ImmValueList& val, const ImmValueList& idx);
|
const ImmValueList& idx);
|
||||||
void DoCompositeShuffleF64x2(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1);
|
void DoCompositeExtractF64x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
void DoCompositeShuffleF64x3(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2);
|
const ImmValueList& idx);
|
||||||
void DoCompositeShuffleF64x4(ImmValueList& inst_values, const ImmValueList& vec0, const ImmValueList& vec1, const ImmValueList& idx0, const ImmValueList& idx1, const ImmValueList& idx2, const ImmValueList& idx3);
|
void DoCompositeExtractF64x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& idx);
|
||||||
|
void DoCompositeInsertF64x2(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& val, const ImmValueList& idx);
|
||||||
|
void DoCompositeInsertF64x3(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& val, const ImmValueList& idx);
|
||||||
|
void DoCompositeInsertF64x4(ImmValueList& inst_values, const ImmValueList& vec,
|
||||||
|
const ImmValueList& val, const ImmValueList& idx);
|
||||||
|
void DoCompositeShuffleF64x2(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1);
|
||||||
|
void DoCompositeShuffleF64x3(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2);
|
||||||
|
void DoCompositeShuffleF64x4(ImmValueList& inst_values, const ImmValueList& vec0,
|
||||||
|
const ImmValueList& vec1, const ImmValueList& idx0,
|
||||||
|
const ImmValueList& idx1, const ImmValueList& idx2,
|
||||||
|
const ImmValueList& idx3);
|
||||||
|
|
||||||
} // namespace Shader::IR::ComputeValue
|
} // namespace Shader::IR::ComputeValue
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
|
|
||||||
namespace Shader::IR::ComputeValue {
|
namespace Shader::IR::ComputeValue {
|
||||||
|
|
||||||
#define NOP_FUNCTION(name) inline void Do##name(ImmValueList& inst_values) {}
|
#define NOP_FUNCTION(name) \
|
||||||
|
inline void Do##name(ImmValueList& inst_values) {}
|
||||||
|
|
||||||
NOP_FUNCTION(Phi)
|
NOP_FUNCTION(Phi)
|
||||||
NOP_FUNCTION(Identity)
|
NOP_FUNCTION(Identity)
|
||||||
|
Loading…
Reference in New Issue
Block a user