cast.ll 20 KB

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