## Summary - Fix assertion failure in `shape.from_extents` fold when operands include `ub.poison` - The fold assumed all non null attributes were `IntegerAttr`, but poison produces a different attribute type - Use `dyn_cast_if_present` to safely handle non integer attributes Fixes #178820 ## Test plan - Added regression test `@from_extents_poison` in canonicalize.mlir