Intersect IR flags from scalar ops VL onto vector op I.
Declared in <llvm/Transforms/Utils/LoopUtils.h>
void
propagateIRFlags(
Value* I,
ArrayRef<Value*> VL,
Value* OpValue = nullptr,
bool IncludeWrapFlags = true);
Get the intersection (logical and) of all of the potential IR flags of each scalar operation (VL) that will be converted into a vector (I). If OpValue is non-null, we only consider operations similar to OpValue when intersecting. Flag set: NSW, NUW (if IncludeWrapFlags is true), exact, and all of fast-math.
| Name | Description |
|---|---|
| I | Vector instruction that receives the intersected flags. |
| VL | Scalar operations whose flags are intersected. |
| OpValue | Optional prototype value; only similar ops are considered. |
| IncludeWrapFlags | Whether NSW/NUW wrap flags are included. |