<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 3, 2015, at 11:48 PM, Volodymyr Arbatov <<a href="mailto:gm.ivlad@gmail.com" class="">gm.ivlad@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Hi all.<div class=""><br class=""><div class="">I'm looking for a ways of defining register files with non-standard machine value type in tablegen. The value types not covered by SimpleValueType enum. For example (from the top of my head) 25 bit integers, or 8 way 18 bit integers. These types going to be used with intrinsics so I also need appropriate C custom types defined. </div><div class=""><br class=""></div><div class="">I wonder if I can describe those in tablegen files or do I need to extend llvm. What is the right way of supporting such types?<br class=""></div><div class=""><br class=""></div><div class="">I'm not familiar will llvm internals so far, so any help and pointers appreciated.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Volodymyr.</div></div></div><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">___________________</span></div></blockquote></div><br class=""><div class="">You would need an MVT type defined for every legal type you have, so you would need to add those. However, LLVM has a pretty widely spread assumption of 8-bit bytes, so that will be far more problematic for your target. Fixing that would be a large project.</div><div class=""><br class=""></div><div class="">-Matt</div></body></html>