@@ -2261,6 +2261,23 @@ class FirConverter : public Fortran::lower::AbstractConverter {
22612261 uja = genLoopUnrollAndJamAttr (u.v );
22622262 has_attrs = true ;
22632263 },
2264+ [&](const Fortran::parser::CompilerDirective::NoVector &u) {
2265+ mlir::BoolAttr trueAttr =
2266+ mlir::BoolAttr::get (builder->getContext (), true );
2267+ va = mlir::LLVM::LoopVectorizeAttr::get (builder->getContext (),
2268+ /* disable=*/ trueAttr,
2269+ {}, {}, {}, {}, {}, {});
2270+ has_attrs = true ;
2271+ },
2272+ [&](const Fortran::parser::CompilerDirective::NoUnroll &u) {
2273+ ua = genLoopUnrollAttr (/* unrollingFactor=*/ 0 );
2274+ has_attrs = true ;
2275+ },
2276+ [&](const Fortran::parser::CompilerDirective::NoUnrollAndJam &u) {
2277+ uja = genLoopUnrollAndJamAttr (/* unrollingFactor=*/ 0 );
2278+ has_attrs = true ;
2279+ },
2280+
22642281 [&](const auto &) {}},
22652282 dir->u );
22662283 }
@@ -2925,6 +2942,15 @@ class FirConverter : public Fortran::lower::AbstractConverter {
29252942 [&](const Fortran::parser::CompilerDirective::UnrollAndJam &) {
29262943 attachDirectiveToLoop (dir, &eval);
29272944 },
2945+ [&](const Fortran::parser::CompilerDirective::NoVector &) {
2946+ attachDirectiveToLoop (dir, &eval);
2947+ },
2948+ [&](const Fortran::parser::CompilerDirective::NoUnroll &) {
2949+ attachDirectiveToLoop (dir, &eval);
2950+ },
2951+ [&](const Fortran::parser::CompilerDirective::NoUnrollAndJam &) {
2952+ attachDirectiveToLoop (dir, &eval);
2953+ },
29282954 [&](const auto &) {}},
29292955 dir.u );
29302956 }
0 commit comments