diff --git a/third_party/intel/lib/TritonIntelGPUToLLVM/LoadStoreOpToLLVM.cpp b/third_party/intel/lib/TritonIntelGPUToLLVM/LoadStoreOpToLLVM.cpp index fb22cb33bc..711124db07 100644 --- a/third_party/intel/lib/TritonIntelGPUToLLVM/LoadStoreOpToLLVM.cpp +++ b/third_party/intel/lib/TritonIntelGPUToLLVM/LoadStoreOpToLLVM.cpp @@ -263,8 +263,11 @@ struct LoadStoreConversionBase { {blockPtr.begin() + blockShape, blockPtr.begin() + blockStride}, b.int_val(1, 1), [&](const Value &index, const Value &shape, const Value &mask) { - // mask = mask && (index < shape) - return b.and_(b.icmp_slt(index, b.trunc(i32_ty, shape)), mask); + // mask = mask && (index < shape) && idx >= 0 + auto is_pos_idx = b.icmp_sge(index, b.int_val(32, 0)); + return b.and_( + b.and_(b.icmp_slt(index, b.trunc(i32_ty, shape)), mask), + is_pos_idx); })); } }