|
290 | 290 | ;; Advanced SIMD modes for H, S and D types.
|
291 | 291 | (define_mode_iterator VDQHSD [V4HI V8HI V2SI V4SI V2DI])
|
292 | 292 |
|
| 293 | +(define_mode_iterator VDQHSD_V1DI [VDQHSD V1DI]) |
| 294 | + |
293 | 295 | ;; Advanced SIMD and scalar integer modes for H and S.
|
294 | 296 | (define_mode_iterator VSDQ_HSI [V4HI V8HI V2SI V4SI HI SI])
|
295 | 297 |
|
|
559 | 561 | (define_mode_iterator SVE_I_SIMD_DI [SVE_I V2DI])
|
560 | 562 |
|
561 | 563 | ;; All SVE and Advanced SIMD integer vector modes.
|
562 |
| -(define_mode_iterator SVE_VDQ_I [SVE_I VDQ_I]) |
| 564 | +(define_mode_iterator SVE_VDQ_I [SVE_I VDQ_I V1DI]) |
563 | 565 |
|
564 | 566 | ;; SVE integer vector modes whose elements are 16 bits or wider.
|
565 | 567 | (define_mode_iterator SVE_HSDI [VNx8HI VNx4HI VNx2HI
|
|
1235 | 1237 | (define_mode_attr bitsize [(V8QI "64") (V16QI "128")
|
1236 | 1238 | (V4HI "64") (V8HI "128")
|
1237 | 1239 | (V2SI "64") (V4SI "128")
|
1238 |
| - (V2DI "128")]) |
| 1240 | + (V1DI "64") (V2DI "128")]) |
1239 | 1241 |
|
1240 | 1242 | ;; Map a floating point or integer mode to the appropriate register name prefix
|
1241 | 1243 | (define_mode_attr s [(HF "h") (SF "s") (DF "d") (SI "s") (DI "d")])
|
|
2297 | 2299 | (VNx8DI "VNx2BI") (VNx8DF "VNx2BI")
|
2298 | 2300 | (V8QI "VNx8BI") (V16QI "VNx16BI")
|
2299 | 2301 | (V4HI "VNx4BI") (V8HI "VNx8BI") (V2SI "VNx2BI")
|
2300 |
| - (V4SI "VNx4BI") (V2DI "VNx2BI")]) |
| 2302 | + (V4SI "VNx4BI") (V2DI "VNx2BI") (V1DI "VNx2BI")]) |
2301 | 2303 |
|
2302 | 2304 | ;; ...and again in lower case.
|
2303 | 2305 | (define_mode_attr vpred [(VNx16QI "vnx16bi") (VNx8QI "vnx8bi")
|
|
2331 | 2333 | (VNx4SI "VNx8SI") (VNx4SF "VNx8SF")
|
2332 | 2334 | (VNx2DI "VNx4DI") (VNx2DF "VNx4DF")])
|
2333 | 2335 |
|
| 2336 | +;; The Advanced SIMD modes of popcount corresponding to scalar modes. |
| 2337 | +(define_mode_attr VEC_POP_MODE [(QI "V8QI") (HI "V4HI") |
| 2338 | + (SI "V2SI") (DI "V1DI")]) |
| 2339 | + |
| 2340 | +;; ...and again in lower case. |
| 2341 | +(define_mode_attr vec_pop_mode [(QI "v8qi") (HI "v4hi") |
| 2342 | + (SI "v2si") (DI "v1di")]) |
| 2343 | + |
2334 | 2344 | ;; On AArch64 the By element instruction doesn't have a 2S variant.
|
2335 | 2345 | ;; However because the instruction always selects a pair of values
|
2336 | 2346 | ;; The normal 3SAME instruction can be used here instead.
|
|
0 commit comments