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   ; CHECK: cost of 3 {{.*}} sext
    156   %r70 = sext <8 x i8> undef to <8 x i32>
    157   ; CHECK: cost of 6 {{.*}} sext
    158   %r71 = sext <16 x i8> undef to <16 x i32>
    159   ; CHECK: cost of 3 {{.*}} zext
    160   %r72 = zext <8 x i8> undef to <8 x i32>
    161   ; CHECK: cost of 6 {{.*}} zext
    162   %r73 = zext <16 x i8> undef to <16 x i32>
    163 
    164   ; CHECK: cost of 7 {{.*}} sext
    165   %rext_0 = sext <8 x i8> undef to <8 x i64>
    166   ; CHECK: cost of 7 {{.*}} zext
    167   %rext_1 = zext <8 x i8> undef to <8 x i64>
    168   ; CHECK: cost of 6 {{.*}} sext
    169   %rext_2 = sext <8 x i16> undef to <8 x i64>
    170   ; CHECK: cost of 6 {{.*}} zext
    171   %rext_3 = zext <8 x i16> undef to <8 x i64>
    172   ; CHECK: cost of 3 {{.*}} sext
    173   %rext_4 = sext <4 x i16> undef to <4 x i64>
    174   ; CHECK: cost of 3 {{.*}} zext
    175   %rext_5 = zext <4 x i16> undef to <4 x i64>
    176 
    177   ; Vector cast cost of instructions lowering the cast to the stack.
    178   ; CHECK: cost of 3 {{.*}} trunc
    179   %r74 = trunc <8 x i32> undef to <8 x i8>
    180   ; CHECK: cost of 6 {{.*}} trunc
    181   %r75 = trunc <16 x i32> undef to <16 x i8>
    182 
    183   ; Floating point truncation costs.
    184   ; CHECK: cost of 1 {{.*}} fptrunc double
    185   %r80 = fptrunc double undef to float
    186   ; CHECK: cost of 2 {{.*}} fptrunc <2 x double
    187   %r81 = fptrunc <2 x double> undef to <2 x float>
    188   ; CHECK: cost of 4 {{.*}} fptrunc <4 x double
    189   %r82 = fptrunc <4 x double> undef to <4 x float>
    190   ; CHECK: cost of 8 {{.*}} fptrunc <8 x double
    191   %r83 = fptrunc <8 x double> undef to <8 x float>
    192   ; CHECK: cost of 16 {{.*}} fptrunc <16 x double
    193   %r84 = fptrunc <16 x double> undef to <16 x float>
    194 
    195   ; Floating point extension costs.
    196   ; CHECK: cost of 1 {{.*}} fpext float
    197   %r85 = fpext float undef to double
    198   ; CHECK: cost of 2 {{.*}} fpext <2 x float
    199   %r86 = fpext <2 x float> undef to <2 x double>
    200   ; CHECK: cost of 4 {{.*}} fpext <4 x float
    201   %r87 = fpext <4 x float> undef to <4 x double>
    202   ; CHECK: cost of 8 {{.*}} fpext <8 x float
    203   %r88 = fpext <8 x float> undef to <8 x double>
    204   ; CHECK: cost of 16 {{.*}} fpext <16 x float
    205   %r89 = fpext <16 x float> undef to <16 x double>
    206 
    207   ;; Floating point to integer vector casts.
    208   ; CHECK: cost of 1 {{.*}} fptoui
    209   %r90 = fptoui <2 x float> undef to <2 x i1>
    210   ; CHECK: cost of 1 {{.*}} fptosi
    211   %r91 = fptosi <2 x float> undef to <2 x i1>
    212   ; CHECK: cost of 1 {{.*}} fptoui
    213   %r92 = fptoui <2 x float> undef to <2 x i8>
    214   ; CHECK: cost of 1 {{.*}} fptosi
    215   %r93 = fptosi <2 x float> undef to <2 x i8>
    216   ; CHECK: cost of 1 {{.*}} fptoui
    217   %r94 = fptoui <2 x float> undef to <2 x i16>
    218   ; CHECK: cost of 1 {{.*}} fptosi
    219   %r95 = fptosi <2 x float> undef to <2 x i16>
    220   ; CHECK: cost of 1 {{.*}} fptoui
    221   %r96 = fptoui <2 x float> undef to <2 x i32>
    222   ; CHECK: cost of 1 {{.*}} fptosi
    223   %r97 = fptosi <2 x float> undef to <2 x i32>
    224   ; CHECK: cost of 24 {{.*}} fptoui
    225   %r98 = fptoui <2 x float> undef to <2 x i64>
    226   ; CHECK: cost of 24 {{.*}} fptosi
    227   %r99 = fptosi <2 x float> undef to <2 x i64>
    228 
    229   ; CHECK: cost of 8 {{.*}} fptoui
    230   %r100 = fptoui <2 x double> undef to <2 x i1>
    231   ; CHECK: cost of 8 {{.*}} fptosi
    232   %r101 = fptosi <2 x double> undef to <2 x i1>
    233   ; CHECK: cost of 8 {{.*}} fptoui
    234   %r102 = fptoui <2 x double> undef to <2 x i8>
    235   ; CHECK: cost of 8 {{.*}} fptosi
    236   %r103 = fptosi <2 x double> undef to <2 x i8>
    237   ; CHECK: cost of 8 {{.*}} fptoui
    238   %r104 = fptoui <2 x double> undef to <2 x i16>
    239   ; CHECK: cost of 8 {{.*}} fptosi
    240   %r105 = fptosi <2 x double> undef to <2 x i16>
    241   ; CHECK: cost of 2 {{.*}} fptoui
    242   %r106 = fptoui <2 x double> undef to <2 x i32>
    243   ; CHECK: cost of 2 {{.*}} fptosi
    244   %r107 = fptosi <2 x double> undef to <2 x i32>
    245   ; CHECK: cost of 24 {{.*}} fptoui
    246   %r108 = fptoui <2 x double> undef to <2 x i64>
    247   ; CHECK: cost of 24 {{.*}} fptosi
    248   %r109 = fptosi <2 x double> undef to <2 x i64>
    249 
    250   ; CHECK: cost of 16 {{.*}} fptoui
    251   %r110 = fptoui <4 x float> undef to <4 x i1>
    252   ; CHECK: cost of 16 {{.*}} fptosi
    253   %r111 = fptosi <4 x float> undef to <4 x i1>
    254   ; CHECK: cost of 3 {{.*}} fptoui
    255   %r112 = fptoui <4 x float> undef to <4 x i8>
    256   ; CHECK: cost of 3 {{.*}} fptosi
    257   %r113 = fptosi <4 x float> undef to <4 x i8>
    258   ; CHECK: cost of 2 {{.*}} fptoui
    259   %r114 = fptoui <4 x float> undef to <4 x i16>
    260   ; CHECK: cost of 2 {{.*}} fptosi
    261   %r115 = fptosi <4 x float> undef to <4 x i16>
    262   ; CHECK: cost of 1 {{.*}} fptoui
    263   %r116 = fptoui <4 x float> undef to <4 x i32>
    264   ; CHECK: cost of 1 {{.*}} fptosi
    265   %r117 = fptosi <4 x float> undef to <4 x i32>
    266   ; CHECK: cost of 48 {{.*}} fptoui
    267   %r118 = fptoui <4 x float> undef to <4 x i64>
    268   ; CHECK: cost of 48 {{.*}} fptosi
    269   %r119 = fptosi <4 x float> undef to <4 x i64>
    270 
    271   ; CHECK: cost of 16 {{.*}} fptoui
    272   %r120 = fptoui <4 x double> undef to <4 x i1>
    273   ; CHECK: cost of 16 {{.*}} fptosi
    274   %r121 = fptosi <4 x double> undef to <4 x i1>
    275   ; CHECK: cost of 16 {{.*}} fptoui
    276   %r122 = fptoui <4 x double> undef to <4 x i8>
    277   ; CHECK: cost of 16 {{.*}} fptosi
    278   %r123 = fptosi <4 x double> undef to <4 x i8>
    279   ; CHECK: cost of 16 {{.*}} fptoui
    280   %r124 = fptoui <4 x double> undef to <4 x i16>
    281   ; CHECK: cost of 16 {{.*}} fptosi
    282   %r125 = fptosi <4 x double> undef to <4 x i16>
    283   ; CHECK: cost of 16 {{.*}} fptoui
    284   %r126 = fptoui <4 x double> undef to <4 x i32>
    285   ; CHECK: cost of 16 {{.*}} fptosi
    286   %r127 = fptosi <4 x double> undef to <4 x i32>
    287   ; CHECK: cost of 48 {{.*}} fptoui
    288   %r128 = fptoui <4 x double> undef to <4 x i64>
    289   ; CHECK: cost of 48 {{.*}} fptosi
    290   %r129 = fptosi <4 x double> undef to <4 x i64>
    291 
    292   ; CHECK: cost of 32 {{.*}} fptoui
    293   %r130 = fptoui <8 x float> undef to <8 x i1>
    294   ; CHECK: cost of 32 {{.*}} fptosi
    295   %r131 = fptosi <8 x float> undef to <8 x i1>
    296   ; CHECK: cost of 32 {{.*}} fptoui
    297   %r132 = fptoui <8 x float> undef to <8 x i8>
    298   ; CHECK: cost of 32 {{.*}} fptosi
    299   %r133 = fptosi <8 x float> undef to <8 x i8>
    300   ; CHECK: cost of 4 {{.*}} fptoui
    301   %r134 = fptoui <8 x float> undef to <8 x i16>
    302   ; CHECK: cost of 4 {{.*}} fptosi
    303   %r135 = fptosi <8 x float> undef to <8 x i16>
    304   ; CHECK: cost of 2 {{.*}} fptoui
    305   %r136 = fptoui <8 x float> undef to <8 x i32>
    306   ; CHECK: cost of 2 {{.*}} fptosi
    307   %r137 = fptosi <8 x float> undef to <8 x i32>
    308   ; CHECK: cost of 96 {{.*}} fptoui
    309   %r138 = fptoui <8 x float> undef to <8 x i64>
    310   ; CHECK: cost of 96 {{.*}} fptosi
    311   %r139 = fptosi <8 x float> undef to <8 x i64>
    312 
    313   ; CHECK: cost of 32 {{.*}} fptoui
    314   %r140 = fptoui <8 x double> undef to <8 x i1>
    315   ; CHECK: cost of 32 {{.*}} fptosi
    316   %r141 = fptosi <8 x double> undef to <8 x i1>
    317   ; CHECK: cost of 32 {{.*}} fptoui
    318   %r142 = fptoui <8 x double> undef to <8 x i8>
    319   ; CHECK: cost of 32 {{.*}} fptosi
    320   %r143 = fptosi <8 x double> undef to <8 x i8>
    321   ; CHECK: cost of 32 {{.*}} fptoui
    322   %r144 = fptoui <8 x double> undef to <8 x i16>
    323   ; CHECK: cost of 32 {{.*}} fptosi
    324   %r145 = fptosi <8 x double> undef to <8 x i16>
    325   ; CHECK: cost of 32 {{.*}} fptoui
    326   %r146 = fptoui <8 x double> undef to <8 x i32>
    327   ; CHECK: cost of 32 {{.*}} fptosi
    328   %r147 = fptosi <8 x double> undef to <8 x i32>
    329   ; CHECK: cost of 96 {{.*}} fptoui
    330   %r148 = fptoui <8 x double> undef to <8 x i64>
    331   ; CHECK: cost of 96 {{.*}} fptosi
    332   %r149 = fptosi <8 x double> undef to <8 x i64>
    333 
    334   ; CHECK: cost of 64 {{.*}} fptoui
    335   %r150 = fptoui <16 x float> undef to <16 x i1>
    336   ; CHECK: cost of 64 {{.*}} fptosi
    337   %r151 = fptosi <16 x float> undef to <16 x i1>
    338   ; CHECK: cost of 64 {{.*}} fptoui
    339   %r152 = fptoui <16 x float> undef to <16 x i8>
    340   ; CHECK: cost of 64 {{.*}} fptosi
    341   %r153 = fptosi <16 x float> undef to <16 x i8>
    342   ; CHECK: cost of 8 {{.*}} fptoui
    343   %r154 = fptoui <16 x float> undef to <16 x i16>
    344   ; CHECK: cost of 8 {{.*}} fptosi
    345   %r155 = fptosi <16 x float> undef to <16 x i16>
    346   ; CHECK: cost of 4 {{.*}} fptoui
    347   %r156 = fptoui <16 x float> undef to <16 x i32>
    348   ; CHECK: cost of 4 {{.*}} fptosi
    349   %r157 = fptosi <16 x float> undef to <16 x i32>
    350   ; CHECK: cost of 192 {{.*}} fptoui
    351   %r158 = fptoui <16 x float> undef to <16 x i64>
    352   ; CHECK: cost of 192 {{.*}} fptosi
    353   %r159 = fptosi <16 x float> undef to <16 x i64>
    354 
    355   ; CHECK: cost of 64 {{.*}} fptoui
    356   %r160 = fptoui <16 x double> undef to <16 x i1>
    357   ; CHECK: cost of 64 {{.*}} fptosi
    358   %r161 = fptosi <16 x double> undef to <16 x i1>
    359   ; CHECK: cost of 64 {{.*}} fptoui
    360   %r162 = fptoui <16 x double> undef to <16 x i8>
    361   ; CHECK: cost of 64 {{.*}} fptosi
    362   %r163 = fptosi <16 x double> undef to <16 x i8>
    363   ; CHECK: cost of 64 {{.*}} fptoui
    364   %r164 = fptoui <16 x double> undef to <16 x i16>
    365   ; CHECK: cost of 64 {{.*}} fptosi
    366   %r165 = fptosi <16 x double> undef to <16 x i16>
    367   ; CHECK: cost of 64 {{.*}} fptoui
    368   %r166 = fptoui <16 x double> undef to <16 x i32>
    369   ; CHECK: cost of 64 {{.*}} fptosi
    370   %r167 = fptosi <16 x double> undef to <16 x i32>
    371   ; CHECK: cost of 192 {{.*}} fptoui
    372   %r168 = fptoui <16 x double> undef to <16 x i64>
    373   ; CHECK: cost of 192 {{.*}} fptosi
    374   %r169 = fptosi <16 x double> undef to <16 x i64>
    375 
    376   ; CHECK: cost of 8 {{.*}} uitofp
    377   %r170 = uitofp <2 x i1> undef to <2 x float>
    378   ; CHECK: cost of 8 {{.*}} sitofp
    379   %r171 = sitofp <2 x i1> undef to <2 x float>
    380   ; CHECK: cost of 3 {{.*}} uitofp
    381   %r172 = uitofp <2 x i8> undef to <2 x float>
    382   ; CHECK: cost of 3 {{.*}} sitofp
    383   %r173 = sitofp <2 x i8> undef to <2 x float>
    384   ; CHECK: cost of 2 {{.*}} uitofp
    385   %r174 = uitofp <2 x i16> undef to <2 x float>
    386   ; CHECK: cost of 2 {{.*}} sitofp
    387   %r175 = sitofp <2 x i16> undef to <2 x float>
    388   ; CHECK: cost of 1 {{.*}} uitofp
    389   %r176 = uitofp <2 x i32> undef to <2 x float>
    390   ; CHECK: cost of 1 {{.*}} sitofp
    391   %r177 = sitofp <2 x i32> undef to <2 x float>
    392   ; CHECK: cost of 24 {{.*}} uitofp
    393   %r178 = uitofp <2 x i64> undef to <2 x float>
    394   ; CHECK: cost of 24 {{.*}} sitofp
    395   %r179 = sitofp <2 x i64> undef to <2 x float>
    396 
    397   ; CHECK: cost of 8 {{.*}} uitofp
    398   %r180 = uitofp <2 x i1> undef to <2 x double>
    399   ; CHECK: cost of 8 {{.*}} sitofp
    400   %r181 = sitofp <2 x i1> undef to <2 x double>
    401   ; CHECK: cost of 4 {{.*}} uitofp
    402   %r182 = uitofp <2 x i8> undef to <2 x double>
    403   ; CHECK: cost of 4 {{.*}} sitofp
    404   %r183 = sitofp <2 x i8> undef to <2 x double>
    405   ; CHECK: cost of 3 {{.*}} uitofp
    406   %r184 = uitofp <2 x i16> undef to <2 x double>
    407   ; CHECK: cost of 3 {{.*}} sitofp
    408   %r185 = sitofp <2 x i16> undef to <2 x double>
    409   ; CHECK: cost of 2 {{.*}} uitofp
    410   %r186 = uitofp <2 x i32> undef to <2 x double>
    411   ; CHECK: cost of 2 {{.*}} sitofp
    412   %r187 = sitofp <2 x i32> undef to <2 x double>
    413   ; CHECK: cost of 24 {{.*}} uitofp
    414   %r188 = uitofp <2 x i64> undef to <2 x double>
    415   ; CHECK: cost of 24 {{.*}} sitofp
    416   %r189 = sitofp <2 x i64> undef to <2 x double>
    417 
    418   ; CHECK: cost of 3 {{.*}} uitofp
    419   %r190 = uitofp <4 x i1> undef to <4 x float>
    420   ; CHECK: cost of 3 {{.*}} sitofp
    421   %r191 = sitofp <4 x i1> undef to <4 x float>
    422   ; CHECK: cost of 3 {{.*}} uitofp
    423   %r192 = uitofp <4 x i8> undef to <4 x float>
    424   ; CHECK: cost of 3 {{.*}} sitofp
    425   %r193 = sitofp <4 x i8> undef to <4 x float>
    426   ; CHECK: cost of 2 {{.*}} uitofp
    427   %r194 = uitofp <4 x i16> undef to <4 x float>
    428   ; CHECK: cost of 2 {{.*}} sitofp
    429   %r195 = sitofp <4 x i16> undef to <4 x float>
    430   ; CHECK: cost of 1 {{.*}} uitofp
    431   %r196 = uitofp <4 x i32> undef to <4 x float>
    432   ; CHECK: cost of 1 {{.*}} sitofp
    433   %r197 = sitofp <4 x i32> undef to <4 x float>
    434   ; CHECK: cost of 48 {{.*}} uitofp
    435   %r198 = uitofp <4 x i64> undef to <4 x float>
    436   ; CHECK: cost of 48 {{.*}} sitofp
    437   %r199 = sitofp <4 x i64> undef to <4 x float>
    438 
    439   ; CHECK: cost of 16 {{.*}} uitofp
    440   %r200 = uitofp <4 x i1> undef to <4 x double>
    441   ; CHECK: cost of 16 {{.*}} sitofp
    442   %r201 = sitofp <4 x i1> undef to <4 x double>
    443   ; CHECK: cost of 16 {{.*}} uitofp
    444   %r202 = uitofp <4 x i8> undef to <4 x double>
    445   ; CHECK: cost of 16 {{.*}} sitofp
    446   %r203 = sitofp <4 x i8> undef to <4 x double>
    447   ; CHECK: cost of 16 {{.*}} uitofp
    448   %r204 = uitofp <4 x i16> undef to <4 x double>
    449   ; CHECK: cost of 16 {{.*}} sitofp
    450   %r205 = sitofp <4 x i16> undef to <4 x double>
    451   ; CHECK: cost of 16 {{.*}} uitofp
    452   %r206 = uitofp <4 x i32> undef to <4 x double>
    453   ; CHECK: cost of 16 {{.*}} sitofp
    454   %r207 = sitofp <4 x i32> undef to <4 x double>
    455   ; CHECK: cost of 48 {{.*}} uitofp
    456   %r208 = uitofp <4 x i64> undef to <4 x double>
    457   ; CHECK: cost of 48 {{.*}} sitofp
    458   %r209 = sitofp <4 x i64> undef to <4 x double>
    459 
    460   ; CHECK: cost of 32 {{.*}} uitofp
    461   %r210 = uitofp <8 x i1> undef to <8 x float>
    462   ; CHECK: cost of 32 {{.*}} sitofp
    463   %r211 = sitofp <8 x i1> undef to <8 x float>
    464   ; CHECK: cost of 32 {{.*}} uitofp
    465   %r212 = uitofp <8 x i8> undef to <8 x float>
    466   ; CHECK: cost of 32 {{.*}} sitofp
    467   %r213 = sitofp <8 x i8> undef to <8 x float>
    468   ; CHECK: cost of 4 {{.*}} uitofp
    469   %r214 = uitofp <8 x i16> undef to <8 x float>
    470   ; CHECK: cost of 4 {{.*}} sitofp
    471   %r215 = sitofp <8 x i16> undef to <8 x float>
    472   ; CHECK: cost of 2 {{.*}} uitofp
    473   %r216 = uitofp <8 x i32> undef to <8 x float>
    474   ; CHECK: cost of 2 {{.*}} sitofp
    475   %r217 = sitofp <8 x i32> undef to <8 x float>
    476   ; CHECK: cost of 96 {{.*}} uitofp
    477   %r218 = uitofp <8 x i64> undef to <8 x float>
    478   ; CHECK: cost of 96 {{.*}} sitofp
    479   %r219 = sitofp <8 x i64> undef to <8 x float>
    480 
    481   ; CHECK: cost of 32 {{.*}} uitofp
    482   %r220 = uitofp <8 x i1> undef to <8 x double>
    483   ; CHECK: cost of 32 {{.*}} sitofp
    484   %r221 = sitofp <8 x i1> undef to <8 x double>
    485   ; CHECK: cost of 32 {{.*}} uitofp
    486   %r222 = uitofp <8 x i8> undef to <8 x double>
    487   ; CHECK: cost of 32 {{.*}} sitofp
    488   %r223 = sitofp <8 x i8> undef to <8 x double>
    489   ; CHECK: cost of 32 {{.*}} uitofp
    490   %r224 = uitofp <8 x i16> undef to <8 x double>
    491   ; CHECK: cost of 32 {{.*}} sitofp
    492   %r225 = sitofp <8 x i16> undef to <8 x double>
    493   ; CHECK: cost of 32 {{.*}} uitofp
    494   %r226 = uitofp <8 x i16> undef to <8 x double>
    495   ; CHECK: cost of 32 {{.*}} sitofp
    496   %r227 = sitofp <8 x i16> undef to <8 x double>
    497   ; CHECK: cost of 96 {{.*}} uitofp
    498   %r228 = uitofp <8 x i64> undef to <8 x double>
    499   ; CHECK: cost of 96 {{.*}} sitofp
    500   %r229 = sitofp <8 x i64> undef to <8 x double>
    501 
    502   ; CHECK: cost of 64 {{.*}} uitofp
    503   %r230 = uitofp <16 x i1> undef to <16 x float>
    504   ; CHECK: cost of 64 {{.*}} sitofp
    505   %r231 = sitofp <16 x i1> undef to <16 x float>
    506   ; CHECK: cost of 64 {{.*}} uitofp
    507   %r232 = uitofp <16 x i8> undef to <16 x float>
    508   ; CHECK: cost of 64 {{.*}} sitofp
    509   %r233 = sitofp <16 x i8> undef to <16 x float>
    510   ; CHECK: cost of 8 {{.*}} uitofp
    511   %r234 = uitofp <16 x i16> undef to <16 x float>
    512   ; CHECK: cost of 8 {{.*}} sitofp
    513   %r235 = sitofp <16 x i16> undef to <16 x float>
    514   ; CHECK: cost of 4 {{.*}} uitofp
    515   %r236 = uitofp <16 x i32> undef to <16 x float>
    516   ; CHECK: cost of 4 {{.*}} sitofp
    517   %r237 = sitofp <16 x i32> undef to <16 x float>
    518   ; CHECK: cost of 192 {{.*}} uitofp
    519   %r238 = uitofp <16 x i64> undef to <16 x float>
    520   ; CHECK: cost of 192 {{.*}} sitofp
    521   %r239 = sitofp <16 x i64> undef to <16 x float>
    522 
    523   ; CHECK: cost of 64 {{.*}} uitofp
    524   %r240 = uitofp <16 x i1> undef to <16 x double>
    525   ; CHECK: cost of 64 {{.*}} sitofp
    526   %r241 = sitofp <16 x i1> undef to <16 x double>
    527   ; CHECK: cost of 64 {{.*}} uitofp
    528   %r242 = uitofp <16 x i8> undef to <16 x double>
    529   ; CHECK: cost of 64 {{.*}} sitofp
    530   %r243 = sitofp <16 x i8> undef to <16 x double>
    531   ; C4ECK: cost of 64 {{.*}} uitofp
    532   %r244 = uitofp <16 x i16> undef to <16 x double>
    533   ; CHECK: cost of 64 {{.*}} sitofp
    534   %r245 = sitofp <16 x i16> undef to <16 x double>
    535   ; CHECK: cost of 64 {{.*}} uitofp
    536   %r246 = uitofp <16 x i16> undef to <16 x double>
    537   ; CHECK: cost of 64 {{.*}} sitofp
    538   %r247 = sitofp <16 x i16> undef to <16 x double>
    539   ; CHECK: cost of 192 {{.*}} uitofp
    540   %r248 = uitofp <16 x i64> undef to <16 x double>
    541   ; CHECK: cost of 192 {{.*}} sitofp
    542   %r249 = sitofp <16 x i64> undef to <16 x double>
    543 
    544   ;CHECK: cost of 0 {{.*}} ret
    545   ret i32 undef
    546 }
    547 
    548