1         $type$[] a = fa.apply(SPECIES.length());
   2         $type$[] r = fr.apply(SPECIES.length());
   3 
   4         for (int ic = 0; ic < INVOC_COUNT; ic++) {
   5             for (int i = 0; i < a.length; i += SPECIES.length()) {
   6                 $abstractvectortype$ av = $abstractvectortype$.fromArray(SPECIES, a, i);
   7                 int num_lanes = SPECIES.length();
   8                 \/\/ Manually unroll because full unroll happens after intrinsification.
   9                 \/\/ Unroll is needed because get intrinsic requires for index to be a known constant.
  10                 if (num_lanes == 1) {
  11                     r[i]=av.get(0);
  12                 } else if (num_lanes == 2) {
  13                     r[i]=av.get(0);
  14                     r[i+1]=av.get(1);
  15                 } else if (num_lanes == 4) {
  16                     r[i]=av.get(0);
  17                     r[i+1]=av.get(1);
  18                     r[i+2]=av.get(2);
  19                     r[i+3]=av.get(3);
  20                 } else if (num_lanes == 8) {
  21                     r[i]=av.get(0);
  22                     r[i+1]=av.get(1);
  23                     r[i+2]=av.get(2);
  24                     r[i+3]=av.get(3);
  25                     r[i+4]=av.get(4);
  26                     r[i+5]=av.get(5);
  27                     r[i+6]=av.get(6);
  28                     r[i+7]=av.get(7);
  29                 } else if (num_lanes == 16) {
  30                     r[i]=av.get(0);
  31                     r[i+1]=av.get(1);
  32                     r[i+2]=av.get(2);
  33                     r[i+3]=av.get(3);
  34                     r[i+4]=av.get(4);
  35                     r[i+5]=av.get(5);
  36                     r[i+6]=av.get(6);
  37                     r[i+7]=av.get(7);
  38                     r[i+8]=av.get(8);
  39                     r[i+9]=av.get(9);
  40                     r[i+10]=av.get(10);
  41                     r[i+11]=av.get(11);
  42                     r[i+12]=av.get(12);
  43                     r[i+13]=av.get(13);
  44                     r[i+14]=av.get(14);
  45                     r[i+15]=av.get(15);
  46                 } else if (num_lanes == 32) {
  47                     r[i]=av.get(0);
  48                     r[i+1]=av.get(1);
  49                     r[i+2]=av.get(2);
  50                     r[i+3]=av.get(3);
  51                     r[i+4]=av.get(4);
  52                     r[i+5]=av.get(5);
  53                     r[i+6]=av.get(6);
  54                     r[i+7]=av.get(7);
  55                     r[i+8]=av.get(8);
  56                     r[i+9]=av.get(9);
  57                     r[i+10]=av.get(10);
  58                     r[i+11]=av.get(11);
  59                     r[i+12]=av.get(12);
  60                     r[i+13]=av.get(13);
  61                     r[i+14]=av.get(14);
  62                     r[i+15]=av.get(15);
  63                     r[i+16]=av.get(16);
  64                     r[i+17]=av.get(17);
  65                     r[i+18]=av.get(18);
  66                     r[i+19]=av.get(19);
  67                     r[i+20]=av.get(20);
  68                     r[i+21]=av.get(21);
  69                     r[i+22]=av.get(22);
  70                     r[i+23]=av.get(23);
  71                     r[i+24]=av.get(24);
  72                     r[i+25]=av.get(25);
  73                     r[i+26]=av.get(26);
  74                     r[i+27]=av.get(27);
  75                     r[i+28]=av.get(28);
  76                     r[i+29]=av.get(29);
  77                     r[i+30]=av.get(30);
  78                     r[i+31]=av.get(31);
  79                 } else if (num_lanes == 64) {
  80                     r[i]=av.get(0);
  81                     r[i+1]=av.get(1);
  82                     r[i+2]=av.get(2);
  83                     r[i+3]=av.get(3);
  84                     r[i+4]=av.get(4);
  85                     r[i+5]=av.get(5);
  86                     r[i+6]=av.get(6);
  87                     r[i+7]=av.get(7);
  88                     r[i+8]=av.get(8);
  89                     r[i+9]=av.get(9);
  90                     r[i+10]=av.get(10);
  91                     r[i+11]=av.get(11);
  92                     r[i+12]=av.get(12);
  93                     r[i+13]=av.get(13);
  94                     r[i+14]=av.get(14);
  95                     r[i+15]=av.get(15);
  96                     r[i+16]=av.get(16);
  97                     r[i+17]=av.get(17);
  98                     r[i+18]=av.get(18);
  99                     r[i+19]=av.get(19);
 100                     r[i+20]=av.get(20);
 101                     r[i+21]=av.get(21);
 102                     r[i+22]=av.get(22);
 103                     r[i+23]=av.get(23);
 104                     r[i+24]=av.get(24);
 105                     r[i+25]=av.get(25);
 106                     r[i+26]=av.get(26);
 107                     r[i+27]=av.get(27);
 108                     r[i+28]=av.get(28);
 109                     r[i+29]=av.get(29);
 110                     r[i+30]=av.get(30);
 111                     r[i+31]=av.get(31);
 112                     r[i+32]=av.get(32);
 113                     r[i+33]=av.get(33);
 114                     r[i+34]=av.get(34);
 115                     r[i+35]=av.get(35);
 116                     r[i+36]=av.get(36);
 117                     r[i+37]=av.get(37);
 118                     r[i+38]=av.get(38);
 119                     r[i+39]=av.get(39);
 120                     r[i+40]=av.get(40);
 121                     r[i+41]=av.get(41);
 122                     r[i+42]=av.get(42);
 123                     r[i+43]=av.get(43);
 124                     r[i+44]=av.get(44);
 125                     r[i+45]=av.get(45);
 126                     r[i+46]=av.get(46);
 127                     r[i+47]=av.get(47);
 128                     r[i+48]=av.get(48);
 129                     r[i+49]=av.get(49);
 130                     r[i+50]=av.get(50);
 131                     r[i+51]=av.get(51);
 132                     r[i+52]=av.get(52);
 133                     r[i+53]=av.get(53);
 134                     r[i+54]=av.get(54);
 135                     r[i+55]=av.get(55);
 136                     r[i+56]=av.get(56);
 137                     r[i+57]=av.get(57);
 138                     r[i+58]=av.get(58);
 139                     r[i+59]=av.get(59);
 140                     r[i+60]=av.get(60);
 141                     r[i+61]=av.get(61);
 142                     r[i+62]=av.get(62);
 143                     r[i+63]=av.get(63);
 144                 } else {
 145                     for (int j = 0; j < SPECIES.length(); j++) {
 146                         r[i+j]=av.get(j);
 147                     }
 148                 }
 149             }
 150         }
 151