From the document 'Evergreen-Family ISA Instructions and Microcode' page 2-23~2-24, I find that INDEX_MODE supports 4 modes. My question is, how to utilize these features in IL respectively? To be more specific:
INDEX_AR_X, use ar.x for indexing. As far as I know, we can use indexed array x to utilize this feature. Is there any other way?
INDEX_LOOP, use loop index. Actually, I do not really use this feature.
INDEX_GLOBAL, treat GPR address as absolute. We can declare sr in IL. However, the number of SR is limited to 32 (am I right?). It is certainly not a limit of the ISA microcode. Is this a hardware limit?
INDEX_GLOBAL_AR_X, absolute GPR address and us ar.x for indexing. Is there any way to use this feature in IL?