Fix modcc simd generation (#1681)
Fixes 2 bugs where modcc expects a range variable but gets a non-range variable instead. PowBinaryExpressions were being handled separately from other BinaryExpressions and as a result, some crucial analysis was being skipped on the analysis of the lhs and rhs arguments. This PR incorporates the analysis and printing of PowBinaryExpression into BinaryExpression. Printing code for a masked AssignmentExpression was not handling the case of a non-range variable on the rhs of the assignment correctly. In that case, an explicit cast to a vector is needed, which is added in this PR.
Showing
- modcc/expression.hpp 3 additions, 0 deletionsmodcc/expression.hpp
- modcc/printer/cexpr_emit.cpp 28 additions, 21 deletionsmodcc/printer/cexpr_emit.cpp
- modcc/printer/cexpr_emit.hpp 2 additions, 3 deletionsmodcc/printer/cexpr_emit.hpp
- modcc/printer/cprinter.cpp 24 additions, 17 deletionsmodcc/printer/cprinter.cpp
- modcc/printer/cprinter.hpp 2 additions, 1 deletionmodcc/printer/cprinter.hpp
Please register or sign in to comment