Represent MOVMSK'ed masks with int64s rather than int32s.
This allows us to scale up to 64-wide execution.
This commit is contained in:
3
stmt.cpp
3
stmt.cpp
@@ -2843,7 +2843,7 @@ CreateForeachActiveStmt(Symbol *iterSym, Stmt *stmts, SourcePos pos) {
|
||||
pos);
|
||||
|
||||
// Compute the per lane mask to test the mask bits against: (1 << iter)
|
||||
ConstExpr *oneExpr = new ConstExpr(AtomicType::UniformInt32, 1,
|
||||
ConstExpr *oneExpr = new ConstExpr(AtomicType::UniformInt64, 1ll,
|
||||
iterSym->pos);
|
||||
Expr *shiftLaneExpr = new BinaryExpr(BinaryExpr::Shl, oneExpr, symExpr,
|
||||
pos);
|
||||
@@ -2863,4 +2863,3 @@ CreateForeachActiveStmt(Symbol *iterSym, Stmt *stmts, SourcePos pos) {
|
||||
// And return a for loop that wires it all together.
|
||||
return new ForStmt(initStmt, testExpr, stepStmt, laneCheckIf, false, pos);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user