| 47 | // built-in numeric types |
| 48 | template <typename TT> |
| 49 | void addFunctionVecBit(Module & mod, const ModuleLibrary & lib) { |
| 50 | // policy ret arg1 arg2 name |
| 51 | // mod.addFunction( (new BuiltInFn<Sim_BinNot<TT>, TT, TT>("~", lib)) ); |
| 52 | mod.addFunction( (new BuiltInFn<Sim_BinAnd<TT>, TT, TT, TT>("&", lib, "BinAnd")) ); |
| 53 | mod.addFunction( (new BuiltInFn<Sim_BinOr<TT>, TT, TT, TT>("|", lib, "BinOr")) ); |
| 54 | mod.addFunction( (new BuiltInFn<Sim_BinXor<TT>, TT, TT, TT>("^", lib, "BinXor")) ); |
| 55 | mod.addFunction( (new BuiltInFn<Sim_BinShl<TT>, TT, TT, int32_t>("<<", lib, "BinShl")) ); |
| 56 | mod.addFunction( (new BuiltInFn<Sim_BinShr<TT>, TT, TT, int32_t>(">>", lib, "BinShr")) ); |
| 57 | mod.addFunction( (new BuiltInFn<Sim_SetBinAnd<TT>, void, TT&, TT>("&=", lib, "SetBinAnd")) |
| 58 | ->setSideEffects(SideEffects::modifyArgument) ); |
| 59 | mod.addFunction( (new BuiltInFn<Sim_SetBinOr<TT>, void, TT&, TT>("|=", lib, "SetBinOr")) |
| 60 | ->setSideEffects(SideEffects::modifyArgument) ); |
| 61 | mod.addFunction( (new BuiltInFn<Sim_SetBinXor<TT>, void, TT&, TT>("^=", lib, "SetBinXor")) |
| 62 | ->setSideEffects(SideEffects::modifyArgument) ); |
| 63 | mod.addFunction( (new BuiltInFn<Sim_SetBinShl<TT>, void, TT&, int32_t>("<<=", lib, "SetBinShl")) |
| 64 | ->setSideEffects(SideEffects::modifyArgument) ); |
| 65 | mod.addFunction( (new BuiltInFn<Sim_SetBinShr<TT>, void, TT&, int32_t>(">>=", lib, "SetBinShr")) |
| 66 | ->setSideEffects(SideEffects::modifyArgument) ); |
| 67 | } |
| 68 | |
| 69 | void Module_BuiltIn::addVectorTypes(ModuleLibrary & lib) { |
| 70 | // float2 |
nothing calls this directly
no test coverage detected