tree b2ec5ad6cf2e899464ee793e02ba05aa80b001eb
parent 731bcb5a1c77403b496f13674ff1994795ce3a44
author Mehdi Amini <joker.eph@gmail.com> 1774453085 +0100
committer GitHub <noreply@github.com> 1774453085 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJpxAFdCRC1aQ7uu5UhlAAA/RsQAGxoTgLifgpcw5Aa98+Figo8
 yi+3rNLwC5khP16skW2U4urhJCuYPDoawWlGJXsgTF0zIJlsurhBSzxI8hKDtd+P
 YZlA4EbqNR2rt9D0G5zXQeyF8zOSVkory0Bljb0y+umyOPTlOXVkhUAxlcKTRceZ
 DukOMGhbPPgRK56vm8M710JMoxzotZ8GCOu5Aok2m04utU5fJujUSMDUflituL3D
 Ow38TDyqH5oT72BNsFSKilM9QFzheree5HYxCwqv3yafrZ94ZI6kUfCJvhX/mFuV
 Wh+tqICw5xKeFd3Pv5+0kA8TqeeR0z7wdHaVKp/mjwWSM05JN0SJKL45t3RNxaRl
 N9Kfs3q70AziSez9HUxa05JUDPSUNsipSeMkY1GaK/JCiBpN0d4Cz/REku3dKKPJ
 tOuJAFC559eeCTGTdWtGcC9jEJpkMV9lmD2y7e2fY60OK8BaCUt95nok0YGzHBxC
 N5JQWhHUkSWT5iiBd74tJyepOcodj1I6BKL2gHJeQDE88AFgrLZjMjNasl2VhUyM
 CnrL+NGgiVU1ITcOhwgegBNF9sKSK3oWJ2wDt6LHC98WZB0VGiW/sc01zRNAdMNd
 x5RIRPtMNBr+VpUDtWtnNOR0hDxjvM1n0ThtiVL/Grv1TZ+BfoqLidgKfiK0Ija1
 KcDJRvtC38i6lNiCk8TE
 =IL57
 -----END PGP SIGNATURE-----
 

[mlir][linalg] Fix UBSan division-by-zero in PackOp folding (#186271)

When tensor-cast folding propagates a zero constant into a dynamic tile
size, `FoldTensorCastPackOp` would proceed to fold the pack into an
`expand_shape` using that zero tile — causing undefined behaviour
(integer
division/modulo by zero, caught by UBSan as SIGFPE).

1. Guard `FoldTensorCastPackOp`: bail out early if any of the resolved
   tile sizes is zero, preventing the invalid fold entirely.

2. Restrict the `hasZeros` check in `commonVerifierPackAndUnPackOp` to
only inspect `Attribute` operands (statically-known zeros), not dynamic
`Value` operands. The verifier can only meaningfully reject zero tiles
   that are statically visible; dynamic zeros are an inherently runtime
   condition.

3. Add `assert(*constantTile \!= 0)` guards in `requirePaddingValue` and
   `requirePaddingValueStrict` to document and enforce the precondition
   that static tile sizes passed to those helpers are non-zero.

Also rename existing negative test cases from `no_fold_*`/`nofold_*` to
`negative_*` for consistency with MLIR testing conventions, and add a
regression test that ensures a pack with a zero tile size is not folded
into `tensor.expand_shape`.

Fixes #185352

Assisted-by: Claude Code