Instances2Show, Outputable
Show CmmTypeDefined in ghc-9.14.1 · GHC.Cmm.TypeOutputable CmmTypeDefined in ghc-9.14.1 · GHC.Cmm.Type
:: a typeCtrl KGHC 9.14.1 · lts/ghc-9.14.x · b2f3bfd · 2026-10-11
Moduleghc-9.14.1GHC2021
Show CmmTypeDefined in ghc-9.14.1 · GHC.Cmm.TypeOutputable CmmTypeDefined in ghc-9.14.1 · GHC.Cmm.TypeA weaker notion of equality of CmmTypes than cmmEqType, used (only) in Cmm Lint.
Why "weaker"? Because:
we don't distinguish GcPtr vs NonGcPtr, because the the RTS files are not yet well-typed wrt pointers,
for vectors, we only compare the widths, because in practice things like X86 xmm registers support different types of data (e.g. 4xf32, 2xf64, 2xu64 etc).
A width in bits.
A width in bytes.
widthFromBytes (widthInBytes w) === wlog_2 of the width in bytes, useful for generating shifts.
Partial* A width from the number of bytes.
The width of the current platform's word size.
The width of the current platform's half-word size.
A bit-mask for the lower half-word of current platform.
Narrow a signed or unsigned value to the given width. The result will
reside in [0, +2^width).
narrowU W8 256 == 256narrowU W8 255 == 255narrowU W8 128 == 128narrowU W8 127 == 127narrowU W8 0 == 0narrowU W8 (-127) == 129narrowU W8 (-128) == 128narrowU W8 (-129) == 127narrowU W8 (-255) == 1narrowU W8 (-256) == 0
Narrow a signed value to the given width. The result will reside
in [-2^(width-1), +2^(width-1)).
narrowS W8 256 == 0narrowS W8 255 == -1narrowS W8 128 == -128narrowS W8 127 == 127narrowS W8 0 == 0narrowS W8 (-127) == -127narrowS W8 (-128) == -128narrowS W8 (-129) == 127narrowS W8 (-255) == 1narrowS W8 (-256) == 0
Eq ForeignHintDefined in ghc-9.14.1 · GHC.Cmm.TypeOutputable ForeignHintDefined in ghc-9.14.1 · GHC.Cmm.Typeis -falignment-sanitisation enabled?