diff --git a/lib/Dialect/Fly/IR/FlyUniversalOps.cpp b/lib/Dialect/Fly/IR/FlyUniversalOps.cpp index 8f470168d..6b17b7b90 100644 --- a/lib/Dialect/Fly/IR/FlyUniversalOps.cpp +++ b/lib/Dialect/Fly/IR/FlyUniversalOps.cpp @@ -250,6 +250,12 @@ FailureOr CopyOpUniversalAtomicType::emitAtomCallSSA(OpBuilder &builder, auto binOp = convertAtomicOp(getAtomicOp().getValue(), isFloat); if (!binOp) return failure(); + + if (isa(src.getType())) { + emitError(loc, "vectorized atomic ops are unsupported, need a scalar-sized copy atom"); + return failure(); + } + LLVM::AtomicRMWOp::create(builder, loc, *binOp, dstPtr, src, LLVM::AtomicOrdering::monotonic, getSyncscope()); return src;