QuACK consumes boolean tensors through uint8 physical storage, but FlexGEMM
passed the main output directly and allocated ordinary result registers with
the accumulator dtype. Tuple and local-reduction epilogues also route the main
value through the Float32 D channel, so storing a boolean value there without
an explicit conversion fails type checking.
Use the existing epilogue storage adapter for the main output, convert values
entering D to the accumulator dtype, and retain the generated result dtype for
direct output stores. Generic integer main outputs remain unsupported because
Float32 D staging can lose integer precision and unsigned conversion semantics
do not match eager conversion; grouped packed outputs keep their existing
specialized path.
Test Plan:
```bash
python test/inductor/test_flex_gemm.py -k bool_main_output
python test/inductor/test_flex_gemm.py -k generic_integer_main_output_rejected
python test/inductor/test_flex_gemm.py
tools/vendoring/quack/vendor.sh --check
spin lint
```
This change was prepared with assistance from an AI coding tool.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/191271
Approved by: https://github.com/eellison
ghstack dependencies: #190793, #191026