Home | History | Annotate | Download | only in ARM
      1 ; RUN: opt < %s  -cost-model -analyze -mtriple=thumbv7-apple-ios6.0.0 -mcpu=cortex-a8 | FileCheck %s
      2 target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
      3 target triple = "thumbv7-apple-ios6.0.0"
      4 
      5 define i32 @casts() {
      6 
      7     ; -- scalars --
      8   ; CHECK: cost of 1 {{.*}} sext
      9   %r0 = sext i1 undef to i8
     10   ; CHECK: cost of 1 {{.*}} zext
     11   %r1 = zext i1 undef to i8
     12   ; CHECK: cost of 1 {{.*}} sext
     13   %r2 = sext i1 undef to i16
     14   ; CHECK: cost of 1 {{.*}} zext
     15   %r3 = zext i1 undef to i16
     16   ; CHECK: cost of 1 {{.*}} sext
     17   %r4 = sext i1 undef to i32
     18   ; CHECK: cost of 1 {{.*}} zext
     19   %r5 = zext i1 undef to i32
     20   ; CHECK: cost of 1 {{.*}} sext
     21   %r6 = sext i1 undef to i64
     22   ; CHECK: cost of 1 {{.*}} zext
     23   %r7 = zext i1 undef to i64
     24   ; CHECK: cost of 0 {{.*}} trunc
     25   %r8 = trunc i8 undef to i1
     26   ; CHECK: cost of 1 {{.*}} sext
     27   %r9 = sext i8 undef to i16
     28   ; CHECK: cost of 1 {{.*}} zext
     29   %r10 = zext i8 undef to i16
     30   ; CHECK: cost of 1 {{.*}} sext
     31   %r11 = sext i8 undef to i32
     32   ; CHECK: cost of 1 {{.*}} zext
     33   %r12 = zext i8 undef to i32
     34   ; CHECK: cost of 1 {{.*}} sext
     35   %r13 = sext i8 undef to i64
     36   ; CHECK: cost of 1 {{.*}} zext
     37   %r14 = zext i8 undef to i64
     38   ; CHECK: cost of 0 {{.*}} trunc
     39   %r15 = trunc i16 undef to i1
     40   ; CHECK: cost of 0 {{.*}} trunc
     41   %r16 = trunc i16 undef to i8
     42   ; CHECK: cost of 1 {{.*}} sext
     43   %r17 = sext i16 undef to i32
     44   ; CHECK: cost of 1 {{.*}} zext
     45   %r18 = zext i16 undef to i32
     46   ; CHECK: cost of 2 {{.*}} sext
     47   %r19 = sext i16 undef to i64
     48   ; CHECK: cost of 1 {{.*}} zext
     49   %r20 = zext i16 undef to i64
     50   ; CHECK: cost of 0 {{.*}} trunc
     51   %r21 = trunc i32 undef to i1
     52   ; CHECK: cost of 0 {{.*}} trunc
     53   %r22 = trunc i32 undef to i8
     54   ; CHECK: cost of 0 {{.*}} trunc
     55   %r23 = trunc i32 undef to i16
     56   ; CHECK: cost of 1 {{.*}} sext
     57   %r24 = sext i32 undef to i64
     58   ; CHECK: cost of 1 {{.*}} zext
     59   %r25 = zext i32 undef to i64
     60   ; CHECK: cost of 0 {{.*}} trunc
     61   %r26 = trunc i64 undef to i1
     62   ; CHECK: cost of 0 {{.*}} trunc
     63   %r27 = trunc i64 undef to i8
     64   ; CHECK: cost of 0 {{.*}} trunc
     65   %r28 = trunc i64 undef to i16
     66   ; CHECK: cost of 0 {{.*}} trunc
     67   %r29 = trunc i64 undef to i32
     68 
     69     ; -- floating point conversions --
     70   ; Moves between scalar and NEON registers.
     71   ; CHECK: cost of 2 {{.*}} fptoui
     72   %r30 = fptoui float undef to i1
     73   ; CHECK: cost of 2 {{.*}} fptosi
     74   %r31 = fptosi float undef to i1
     75   ; CHECK: cost of 2 {{.*}} fptoui
     76   %r32 = fptoui float undef to i8
     77   ; CHECK: cost of 2 {{.*}} fptosi
     78   %r33 = fptosi float undef to i8
     79   ; CHECK: cost of 2 {{.*}} fptoui
     80   %r34 = fptoui float undef to i16
     81   ; CHECK: cost of 2 {{.*}} fptosi
     82   %r35 = fptosi float undef to i16
     83   ; CHECK: cost of 2 {{.*}} fptoui
     84   %r36 = fptoui float undef to i32
     85   ; CHECK: cost of 2 {{.*}} fptosi
     86   %r37 = fptosi float undef to i32
     87   ; CHECK: cost of 10 {{.*}} fptoui
     88   %r38 = fptoui float undef to i64
     89   ; CHECK: cost of 10 {{.*}} fptosi
     90   %r39 = fptosi float undef to i64
     91   ; CHECK: cost of 2 {{.*}} fptoui
     92   %r40 = fptoui double undef to i1
     93   ; CHECK: cost of 2 {{.*}} fptosi
     94   %r41 = fptosi double undef to i1
     95   ; CHECK: cost of 2 {{.*}} fptoui
     96   %r42 = fptoui double undef to i8
     97   ; CHECK: cost of 2 {{.*}} fptosi
     98   %r43 = fptosi double undef to i8
     99   ; CHECK: cost of 2 {{.*}} fptoui
    100   %r44 = fptoui double undef to i16
    101   ; CHECK: cost of 2 {{.*}} fptosi
    102   %r45 = fptosi double undef to i16
    103   ; CHECK: cost of 2 {{.*}} fptoui
    104   %r46 = fptoui double undef to i32
    105   ; CHECK: cost of 2 {{.*}} fptosi
    106   %r47 = fptosi double undef to i32
    107   ; Function call
    108   ; CHECK: cost of 10 {{.*}} fptoui
    109   %r48 = fptoui double undef to i64
    110   ; CHECK: cost of 10 {{.*}} fptosi
    111   %r49 = fptosi double undef to i64
    112 
    113   ; CHECK: cost of 2 {{.*}} sitofp
    114   %r50 = sitofp i1 undef to float
    115   ; CHECK: cost of 2 {{.*}} uitofp
    116   %r51 = uitofp i1 undef to float
    117   ; CHECK: cost of 2 {{.*}} sitofp
    118   %r52 = sitofp i1 undef to double
    119   ; CHECK: cost of 2 {{.*}} uitofp
    120   %r53 = uitofp i1 undef to double
    121   ; CHECK: cost of 2 {{.*}} sitofp
    122   %r54 = sitofp i8 undef to float
    123   ; CHECK: cost of 2 {{.*}} uitofp
    124   %r55 = uitofp i8 undef to float
    125   ; CHECK: cost of 2 {{.*}} sitofp
    126   %r56 = sitofp i8 undef to double
    127   ; CHECK: cost of 2 {{.*}} uitofp
    128   %r57 = uitofp i8 undef to double
    129   ; CHECK: cost of 2 {{.*}} sitofp
    130   %r58 = sitofp i16 undef to float
    131   ; CHECK: cost of 2 {{.*}} uitofp
    132   %r59 = uitofp i16 undef to float
    133   ; CHECK: cost of 2 {{.*}} sitofp
    134   %r60 = sitofp i16 undef to double
    135   ; CHECK: cost of 2 {{.*}} uitofp
    136   %r61 = uitofp i16 undef to double
    137   ; CHECK: cost of 2 {{.*}} sitofp
    138   %r62 = sitofp i32 undef to float
    139   ; CHECK: cost of 2 {{.*}} uitofp
    140   %r63 = uitofp i32 undef to float
    141   ; CHECK: cost of 2 {{.*}} sitofp
    142   %r64 = sitofp i32 undef to double
    143   ; CHECK: cost of 2 {{.*}} uitofp
    144   %r65 = uitofp i32 undef to double
    145   ; Function call
    146   ; CHECK: cost of 10 {{.*}} sitofp
    147   %r66 = sitofp i64 undef to float
    148   ; CHECK: cost of 10 {{.*}} uitofp
    149   %r67 = uitofp i64 undef to float
    150   ; CHECK: cost of 10 {{.*}} sitofp
    151   %r68 = sitofp i64 undef to double
    152   ; CHECK: cost of 10 {{.*}} uitofp
    153   %r69 = uitofp i64 undef to double
    154 
    155   ; Vector cast cost of instructions lowering the cast to the stack.
    156   ; CHECK: cost of 24 {{.*}} sext
    157   %r70 = sext <8 x i8> undef to <8 x i32>
    158   ; CHECK: cost of 48 {{.*}} sext
    159   %r71 = sext <16 x i8> undef to <16 x i32>
    160   ; CHECK: cost of 22 {{.*}} zext
    161   %r72 = zext <8 x i8> undef to <8 x i32>
    162   ; CHECK: cost of 44 {{.*}} zext
    163   %r73 = zext <16 x i8> undef to <16 x i32>
    164   ; CHECK: cost of 19 {{.*}} trunc
    165   %r74 = trunc <8 x i32> undef to <8 x i8>
    166   ; CHECK: cost of 38 {{.*}} trunc
    167   %r75 = trunc <16 x i32> undef to <16 x i8>
    168 
    169   ; Floating point truncation costs.
    170   ; CHECK: cost of 1 {{.*}} fptrunc double
    171   %r80 = fptrunc double undef to float
    172   ; CHECK: cost of 2 {{.*}} fptrunc <2 x double
    173   %r81 = fptrunc <2 x double> undef to <2 x float>
    174   ; CHECK: cost of 4 {{.*}} fptrunc <4 x double
    175   %r82 = fptrunc <4 x double> undef to <4 x float>
    176   ; CHECK: cost of 8 {{.*}} fptrunc <8 x double
    177   %r83 = fptrunc <8 x double> undef to <8 x float>
    178   ; CHECK: cost of 16 {{.*}} fptrunc <16 x double
    179   %r84 = fptrunc <16 x double> undef to <16 x float>
    180 
    181   ; Floating point extension costs.
    182   ; CHECK: cost of 1 {{.*}} fpext float
    183   %r85 = fpext float undef to double
    184   ; CHECK: cost of 2 {{.*}} fpext <2 x float
    185   %r86 = fpext <2 x float> undef to <2 x double>
    186   ; CHECK: cost of 4 {{.*}} fpext <4 x float
    187   %r87 = fpext <4 x float> undef to <4 x double>
    188   ; CHECK: cost of 8 {{.*}} fpext <8 x float
    189   %r88 = fpext <8 x float> undef to <8 x double>
    190   ; CHECK: cost of 16 {{.*}} fpext <16 x float
    191   %r89 = fpext <16 x float> undef to <16 x double>
    192 
    193   ;; Floating point to integer vector casts.
    194   ; CHECK: cost of 1 {{.*}} fptoui
    195   %r90 = fptoui <2 x float> undef to <2 x i1>
    196   ; CHECK: cost of 1 {{.*}} fptosi
    197   %r91 = fptosi <2 x float> undef to <2 x i1>
    198   ; CHECK: cost of 1 {{.*}} fptoui
    199   %r92 = fptoui <2 x float> undef to <2 x i8>
    200   ; CHECK: cost of 1 {{.*}} fptosi
    201   %r93 = fptosi <2 x float> undef to <2 x i8>
    202   ; CHECK: cost of 1 {{.*}} fptoui
    203   %r94 = fptoui <2 x float> undef to <2 x i16>
    204   ; CHECK: cost of 1 {{.*}} fptosi
    205   %r95 = fptosi <2 x float> undef to <2 x i16>
    206   ; CHECK: cost of 1 {{.*}} fptoui
    207   %r96 = fptoui <2 x float> undef to <2 x i32>
    208   ; CHECK: cost of 1 {{.*}} fptosi
    209   %r97 = fptosi <2 x float> undef to <2 x i32>
    210   ; CHECK: cost of 24 {{.*}} fptoui
    211   %r98 = fptoui <2 x float> undef to <2 x i64>
    212   ; CHECK: cost of 24 {{.*}} fptosi
    213   %r99 = fptosi <2 x float> undef to <2 x i64>
    214 
    215   ; CHECK: cost of 8 {{.*}} fptoui
    216   %r100 = fptoui <2 x double> undef to <2 x i1>
    217   ; CHECK: cost of 8 {{.*}} fptosi
    218   %r101 = fptosi <2 x double> undef to <2 x i1>
    219   ; CHECK: cost of 8 {{.*}} fptoui
    220   %r102 = fptoui <2 x double> undef to <2 x i8>
    221   ; CHECK: cost of 8 {{.*}} fptosi
    222   %r103 = fptosi <2 x double> undef to <2 x i8>
    223   ; CHECK: cost of 8 {{.*}} fptoui
    224   %r104 = fptoui <2 x double> undef to <2 x i16>
    225   ; CHECK: cost of 8 {{.*}} fptosi
    226   %r105 = fptosi <2 x double> undef to <2 x i16>
    227   ; CHECK: cost of 2 {{.*}} fptoui
    228   %r106 = fptoui <2 x double> undef to <2 x i32>
    229   ; CHECK: cost of 2 {{.*}} fptosi
    230   %r107 = fptosi <2 x double> undef to <2 x i32>
    231   ; CHECK: cost of 24 {{.*}} fptoui
    232   %r108 = fptoui <2 x double> undef to <2 x i64>
    233   ; CHECK: cost of 24 {{.*}} fptosi
    234   %r109 = fptosi <2 x double> undef to <2 x i64>
    235 
    236   ; CHECK: cost of 16 {{.*}} fptoui
    237   %r110 = fptoui <4 x float> undef to <4 x i1>
    238   ; CHECK: cost of 16 {{.*}} fptosi
    239   %r111 = fptosi <4 x float> undef to <4 x i1>
    240   ; CHECK: cost of 3 {{.*}} fptoui
    241   %r112 = fptoui <4 x float> undef to <4 x i8>
    242   ; CHECK: cost of 3 {{.*}} fptosi
    243   %r113 = fptosi <4 x float> undef to <4 x i8>
    244   ; CHECK: cost of 2 {{.*}} fptoui
    245   %r114 = fptoui <4 x float> undef to <4 x i16>
    246   ; CHECK: cost of 2 {{.*}} fptosi
    247   %r115 = fptosi <4 x float> undef to <4 x i16>
    248   ; CHECK: cost of 1 {{.*}} fptoui
    249   %r116 = fptoui <4 x float> undef to <4 x i32>
    250   ; CHECK: cost of 1 {{.*}} fptosi
    251   %r117 = fptosi <4 x float> undef to <4 x i32>
    252   ; CHECK: cost of 48 {{.*}} fptoui
    253   %r118 = fptoui <4 x float> undef to <4 x i64>
    254   ; CHECK: cost of 48 {{.*}} fptosi
    255   %r119 = fptosi <4 x float> undef to <4 x i64>
    256 
    257   ; CHECK: cost of 16 {{.*}} fptoui
    258   %r120 = fptoui <4 x double> undef to <4 x i1>
    259   ; CHECK: cost of 16 {{.*}} fptosi
    260   %r121 = fptosi <4 x double> undef to <4 x i1>
    261   ; CHECK: cost of 16 {{.*}} fptoui
    262   %r122 = fptoui <4 x double> undef to <4 x i8>
    263   ; CHECK: cost of 16 {{.*}} fptosi
    264   %r123 = fptosi <4 x double> undef to <4 x i8>
    265   ; CHECK: cost of 16 {{.*}} fptoui
    266   %r124 = fptoui <4 x double> undef to <4 x i16>
    267   ; CHECK: cost of 16 {{.*}} fptosi
    268   %r125 = fptosi <4 x double> undef to <4 x i16>
    269   ; CHECK: cost of 16 {{.*}} fptoui
    270   %r126 = fptoui <4 x double> undef to <4 x i32>
    271   ; CHECK: cost of 16 {{.*}} fptosi
    272   %r127 = fptosi <4 x double> undef to <4 x i32>
    273   ; CHECK: cost of 48 {{.*}} fptoui
    274   %r128 = fptoui <4 x double> undef to <4 x i64>
    275   ; CHECK: cost of 48 {{.*}} fptosi
    276   %r129 = fptosi <4 x double> undef to <4 x i64>
    277 
    278   ; CHECK: cost of 32 {{.*}} fptoui
    279   %r130 = fptoui <8 x float> undef to <8 x i1>
    280   ; CHECK: cost of 32 {{.*}} fptosi
    281   %r131 = fptosi <8 x float> undef to <8 x i1>
    282   ; CHECK: cost of 32 {{.*}} fptoui
    283   %r132 = fptoui <8 x float> undef to <8 x i8>
    284   ; CHECK: cost of 32 {{.*}} fptosi
    285   %r133 = fptosi <8 x float> undef to <8 x i8>
    286   ; CHECK: cost of 4 {{.*}} fptoui
    287   %r134 = fptoui <8 x float> undef to <8 x i16>
    288   ; CHECK: cost of 4 {{.*}} fptosi
    289   %r135 = fptosi <8 x float> undef to <8 x i16>
    290   ; CHECK: cost of 2 {{.*}} fptoui
    291   %r136 = fptoui <8 x float> undef to <8 x i32>
    292   ; CHECK: cost of 2 {{.*}} fptosi
    293   %r137 = fptosi <8 x float> undef to <8 x i32>
    294   ; CHECK: cost of 96 {{.*}} fptoui
    295   %r138 = fptoui <8 x float> undef to <8 x i64>
    296   ; CHECK: cost of 96 {{.*}} fptosi
    297   %r139 = fptosi <8 x float> undef to <8 x i64>
    298 
    299   ; CHECK: cost of 32 {{.*}} fptoui
    300   %r140 = fptoui <8 x double> undef to <8 x i1>
    301   ; CHECK: cost of 32 {{.*}} fptosi
    302   %r141 = fptosi <8 x double> undef to <8 x i1>
    303   ; CHECK: cost of 32 {{.*}} fptoui
    304   %r142 = fptoui <8 x double> undef to <8 x i8>
    305   ; CHECK: cost of 32 {{.*}} fptosi
    306   %r143 = fptosi <8 x double> undef to <8 x i8>
    307   ; CHECK: cost of 32 {{.*}} fptoui
    308   %r144 = fptoui <8 x double> undef to <8 x i16>
    309   ; CHECK: cost of 32 {{.*}} fptosi
    310   %r145 = fptosi <8 x double> undef to <8 x i16>
    311   ; CHECK: cost of 32 {{.*}} fptoui
    312   %r146 = fptoui <8 x double> undef to <8 x i32>
    313   ; CHECK: cost of 32 {{.*}} fptosi
    314   %r147 = fptosi <8 x double> undef to <8 x i32>
    315   ; CHECK: cost of 96 {{.*}} fptoui
    316   %r148 = fptoui <8 x double> undef to <8 x i64>
    317   ; CHECK: cost of 96 {{.*}} fptosi
    318   %r149 = fptosi <8 x double> undef to <8 x i64>
    319 
    320   ; CHECK: cost of 64 {{.*}} fptoui
    321   %r150 = fptoui <16 x float> undef to <16 x i1>
    322   ; CHECK: cost of 64 {{.*}} fptosi
    323   %r151 = fptosi <16 x float> undef to <16 x i1>
    324   ; CHECK: cost of 64 {{.*}} fptoui
    325   %r152 = fptoui <16 x float> undef to <16 x i8>
    326   ; CHECK: cost of 64 {{.*}} fptosi
    327   %r153 = fptosi <16 x float> undef to <16 x i8>
    328   ; CHECK: cost of 8 {{.*}} fptoui
    329   %r154 = fptoui <16 x float> undef to <16 x i16>
    330   ; CHECK: cost of 8 {{.*}} fptosi
    331   %r155 = fptosi <16 x float> undef to <16 x i16>
    332   ; CHECK: cost of 4 {{.*}} fptoui
    333   %r156 = fptoui <16 x float> undef to <16 x i32>
    334   ; CHECK: cost of 4 {{.*}} fptosi
    335   %r157 = fptosi <16 x float> undef to <16 x i32>
    336   ; CHECK: cost of 192 {{.*}} fptoui
    337   %r158 = fptoui <16 x float> undef to <16 x i64>
    338   ; CHECK: cost of 192 {{.*}} fptosi
    339   %r159 = fptosi <16 x float> undef to <16 x i64>
    340 
    341   ; CHECK: cost of 64 {{.*}} fptoui
    342   %r160 = fptoui <16 x double> undef to <16 x i1>
    343   ; CHECK: cost of 64 {{.*}} fptosi
    344   %r161 = fptosi <16 x double> undef to <16 x i1>
    345   ; CHECK: cost of 64 {{.*}} fptoui
    346   %r162 = fptoui <16 x double> undef to <16 x i8>
    347   ; CHECK: cost of 64 {{.*}} fptosi
    348   %r163 = fptosi <16 x double> undef to <16 x i8>
    349   ; CHECK: cost of 64 {{.*}} fptoui
    350   %r164 = fptoui <16 x double> undef to <16 x i16>
    351   ; CHECK: cost of 64 {{.*}} fptosi
    352   %r165 = fptosi <16 x double> undef to <16 x i16>
    353   ; CHECK: cost of 64 {{.*}} fptoui
    354   %r166 = fptoui <16 x double> undef to <16 x i32>
    355   ; CHECK: cost of 64 {{.*}} fptosi
    356   %r167 = fptosi <16 x double> undef to <16 x i32>
    357   ; CHECK: cost of 192 {{.*}} fptoui
    358   %r168 = fptoui <16 x double> undef to <16 x i64>
    359   ; CHECK: cost of 192 {{.*}} fptosi
    360   %r169 = fptosi <16 x double> undef to <16 x i64>
    361 
    362   ; CHECK: cost of 8 {{.*}} uitofp
    363   %r170 = uitofp <2 x i1> undef to <2 x float>
    364   ; CHECK: cost of 8 {{.*}} sitofp
    365   %r171 = sitofp <2 x i1> undef to <2 x float>
    366   ; CHECK: cost of 3 {{.*}} uitofp
    367   %r172 = uitofp <2 x i8> undef to <2 x float>
    368   ; CHECK: cost of 3 {{.*}} sitofp
    369   %r173 = sitofp <2 x i8> undef to <2 x float>
    370   ; CHECK: cost of 2 {{.*}} uitofp
    371   %r174 = uitofp <2 x i16> undef to <2 x float>
    372   ; CHECK: cost of 2 {{.*}} sitofp
    373   %r175 = sitofp <2 x i16> undef to <2 x float>
    374   ; CHECK: cost of 1 {{.*}} uitofp
    375   %r176 = uitofp <2 x i32> undef to <2 x float>
    376   ; CHECK: cost of 1 {{.*}} sitofp
    377   %r177 = sitofp <2 x i32> undef to <2 x float>
    378   ; CHECK: cost of 24 {{.*}} uitofp
    379   %r178 = uitofp <2 x i64> undef to <2 x float>
    380   ; CHECK: cost of 24 {{.*}} sitofp
    381   %r179 = sitofp <2 x i64> undef to <2 x float>
    382 
    383   ; CHECK: cost of 8 {{.*}} uitofp
    384   %r180 = uitofp <2 x i1> undef to <2 x double>
    385   ; CHECK: cost of 8 {{.*}} sitofp
    386   %r181 = sitofp <2 x i1> undef to <2 x double>
    387   ; CHECK: cost of 4 {{.*}} uitofp
    388   %r182 = uitofp <2 x i8> undef to <2 x double>
    389   ; CHECK: cost of 4 {{.*}} sitofp
    390   %r183 = sitofp <2 x i8> undef to <2 x double>
    391   ; CHECK: cost of 3 {{.*}} uitofp
    392   %r184 = uitofp <2 x i16> undef to <2 x double>
    393   ; CHECK: cost of 3 {{.*}} sitofp
    394   %r185 = sitofp <2 x i16> undef to <2 x double>
    395   ; CHECK: cost of 2 {{.*}} uitofp
    396   %r186 = uitofp <2 x i32> undef to <2 x double>
    397   ; CHECK: cost of 2 {{.*}} sitofp
    398   %r187 = sitofp <2 x i32> undef to <2 x double>
    399   ; CHECK: cost of 24 {{.*}} uitofp
    400   %r188 = uitofp <2 x i64> undef to <2 x double>
    401   ; CHECK: cost of 24 {{.*}} sitofp
    402   %r189 = sitofp <2 x i64> undef to <2 x double>
    403 
    404   ; CHECK: cost of 3 {{.*}} uitofp
    405   %r190 = uitofp <4 x i1> undef to <4 x float>
    406   ; CHECK: cost of 3 {{.*}} sitofp
    407   %r191 = sitofp <4 x i1> undef to <4 x float>
    408   ; CHECK: cost of 3 {{.*}} uitofp
    409   %r192 = uitofp <4 x i8> undef to <4 x float>
    410   ; CHECK: cost of 3 {{.*}} sitofp
    411   %r193 = sitofp <4 x i8> undef to <4 x float>
    412   ; CHECK: cost of 2 {{.*}} uitofp
    413   %r194 = uitofp <4 x i16> undef to <4 x float>
    414   ; CHECK: cost of 2 {{.*}} sitofp
    415   %r195 = sitofp <4 x i16> undef to <4 x float>
    416   ; CHECK: cost of 1 {{.*}} uitofp
    417   %r196 = uitofp <4 x i32> undef to <4 x float>
    418   ; CHECK: cost of 1 {{.*}} sitofp
    419   %r197 = sitofp <4 x i32> undef to <4 x float>
    420   ; CHECK: cost of 48 {{.*}} uitofp
    421   %r198 = uitofp <4 x i64> undef to <4 x float>
    422   ; CHECK: cost of 48 {{.*}} sitofp
    423   %r199 = sitofp <4 x i64> undef to <4 x float>
    424 
    425   ; CHECK: cost of 16 {{.*}} uitofp
    426   %r200 = uitofp <4 x i1> undef to <4 x double>
    427   ; CHECK: cost of 16 {{.*}} sitofp
    428   %r201 = sitofp <4 x i1> undef to <4 x double>
    429   ; CHECK: cost of 16 {{.*}} uitofp
    430   %r202 = uitofp <4 x i8> undef to <4 x double>
    431   ; CHECK: cost of 16 {{.*}} sitofp
    432   %r203 = sitofp <4 x i8> undef to <4 x double>
    433   ; CHECK: cost of 16 {{.*}} uitofp
    434   %r204 = uitofp <4 x i16> undef to <4 x double>
    435   ; CHECK: cost of 16 {{.*}} sitofp
    436   %r205 = sitofp <4 x i16> undef to <4 x double>
    437   ; CHECK: cost of 16 {{.*}} uitofp
    438   %r206 = uitofp <4 x i32> undef to <4 x double>
    439   ; CHECK: cost of 16 {{.*}} sitofp
    440   %r207 = sitofp <4 x i32> undef to <4 x double>
    441   ; CHECK: cost of 48 {{.*}} uitofp
    442   %r208 = uitofp <4 x i64> undef to <4 x double>
    443   ; CHECK: cost of 48 {{.*}} sitofp
    444   %r209 = sitofp <4 x i64> undef to <4 x double>
    445 
    446   ; CHECK: cost of 32 {{.*}} uitofp
    447   %r210 = uitofp <8 x i1> undef to <8 x float>
    448   ; CHECK: cost of 32 {{.*}} sitofp
    449   %r211 = sitofp <8 x i1> undef to <8 x float>
    450   ; CHECK: cost of 32 {{.*}} uitofp
    451   %r212 = uitofp <8 x i8> undef to <8 x float>
    452   ; CHECK: cost of 32 {{.*}} sitofp
    453   %r213 = sitofp <8 x i8> undef to <8 x float>
    454   ; CHECK: cost of 4 {{.*}} uitofp
    455   %r214 = uitofp <8 x i16> undef to <8 x float>
    456   ; CHECK: cost of 4 {{.*}} sitofp
    457   %r215 = sitofp <8 x i16> undef to <8 x float>
    458   ; CHECK: cost of 2 {{.*}} uitofp
    459   %r216 = uitofp <8 x i32> undef to <8 x float>
    460   ; CHECK: cost of 2 {{.*}} sitofp
    461   %r217 = sitofp <8 x i32> undef to <8 x float>
    462   ; CHECK: cost of 96 {{.*}} uitofp
    463   %r218 = uitofp <8 x i64> undef to <8 x float>
    464   ; CHECK: cost of 96 {{.*}} sitofp
    465   %r219 = sitofp <8 x i64> undef to <8 x float>
    466 
    467   ; CHECK: cost of 32 {{.*}} uitofp
    468   %r220 = uitofp <8 x i1> undef to <8 x double>
    469   ; CHECK: cost of 32 {{.*}} sitofp
    470   %r221 = sitofp <8 x i1> undef to <8 x double>
    471   ; CHECK: cost of 32 {{.*}} uitofp
    472   %r222 = uitofp <8 x i8> undef to <8 x double>
    473   ; CHECK: cost of 32 {{.*}} sitofp
    474   %r223 = sitofp <8 x i8> undef to <8 x double>
    475   ; CHECK: cost of 32 {{.*}} uitofp
    476   %r224 = uitofp <8 x i16> undef to <8 x double>
    477   ; CHECK: cost of 32 {{.*}} sitofp
    478   %r225 = sitofp <8 x i16> undef to <8 x double>
    479   ; CHECK: cost of 32 {{.*}} uitofp
    480   %r226 = uitofp <8 x i16> undef to <8 x double>
    481   ; CHECK: cost of 32 {{.*}} sitofp
    482   %r227 = sitofp <8 x i16> undef to <8 x double>
    483   ; CHECK: cost of 96 {{.*}} uitofp
    484   %r228 = uitofp <8 x i64> undef to <8 x double>
    485   ; CHECK: cost of 96 {{.*}} sitofp
    486   %r229 = sitofp <8 x i64> undef to <8 x double>
    487 
    488   ; CHECK: cost of 64 {{.*}} uitofp
    489   %r230 = uitofp <16 x i1> undef to <16 x float>
    490   ; CHECK: cost of 64 {{.*}} sitofp
    491   %r231 = sitofp <16 x i1> undef to <16 x float>
    492   ; CHECK: cost of 64 {{.*}} uitofp
    493   %r232 = uitofp <16 x i8> undef to <16 x float>
    494   ; CHECK: cost of 64 {{.*}} sitofp
    495   %r233 = sitofp <16 x i8> undef to <16 x float>
    496   ; CHECK: cost of 8 {{.*}} uitofp
    497   %r234 = uitofp <16 x i16> undef to <16 x float>
    498   ; CHECK: cost of 8 {{.*}} sitofp
    499   %r235 = sitofp <16 x i16> undef to <16 x float>
    500   ; CHECK: cost of 4 {{.*}} uitofp
    501   %r236 = uitofp <16 x i32> undef to <16 x float>
    502   ; CHECK: cost of 4 {{.*}} sitofp
    503   %r237 = sitofp <16 x i32> undef to <16 x float>
    504   ; CHECK: cost of 192 {{.*}} uitofp
    505   %r238 = uitofp <16 x i64> undef to <16 x float>
    506   ; CHECK: cost of 192 {{.*}} sitofp
    507   %r239 = sitofp <16 x i64> undef to <16 x float>
    508 
    509   ; CHECK: cost of 64 {{.*}} uitofp
    510   %r240 = uitofp <16 x i1> undef to <16 x double>
    511   ; CHECK: cost of 64 {{.*}} sitofp
    512   %r241 = sitofp <16 x i1> undef to <16 x double>
    513   ; CHECK: cost of 64 {{.*}} uitofp
    514   %r242 = uitofp <16 x i8> undef to <16 x double>
    515   ; CHECK: cost of 64 {{.*}} sitofp
    516   %r243 = sitofp <16 x i8> undef to <16 x double>
    517   ; C4ECK: cost of 64 {{.*}} uitofp
    518   %r244 = uitofp <16 x i16> undef to <16 x double>
    519   ; CHECK: cost of 64 {{.*}} sitofp
    520   %r245 = sitofp <16 x i16> undef to <16 x double>
    521   ; CHECK: cost of 64 {{.*}} uitofp
    522   %r246 = uitofp <16 x i16> undef to <16 x double>
    523   ; CHECK: cost of 64 {{.*}} sitofp
    524   %r247 = sitofp <16 x i16> undef to <16 x double>
    525   ; CHECK: cost of 192 {{.*}} uitofp
    526   %r248 = uitofp <16 x i64> undef to <16 x double>
    527   ; CHECK: cost of 192 {{.*}} sitofp
    528   %r249 = sitofp <16 x i64> undef to <16 x double>
    529 
    530   ;CHECK: cost of 0 {{.*}} ret
    531   ret i32 undef
    532 }
    533 
    534