Sanjay Patel
e53dbeb2ad
[X86, AVX] improve insertion into zero element of 256-bit vector
...
This patch allows AVX blend instructions to handle insertion into the low
element of a 256-bit vector for the appropriate data types.
For f32, instead of:
vblendps $1, %xmm1, %xmm0, %xmm1 ## xmm1 = xmm1[0],xmm0[1,2,3]
vblendps $15, %ymm1, %ymm0, %ymm0 ## ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
we get:
vblendps $1, %ymm1, %ymm0, %ymm0 ## ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7]
For f64, instead of:
vmovsd %xmm1, %xmm0, %xmm1 ## xmm1 = xmm1[0],xmm0[1]
vblendpd $3, %ymm1, %ymm0, %ymm0 ## ymm0 = ymm1[0,1],ymm0[2,3]
we get:
vblendpd $1, %ymm1, %ymm0, %ymm0 ## ymm0 = ymm1[0],ymm0[1,2,3]
For the hardware-neglected integer data types, I left a TODO comment in the
code and added regression tests for a follow-on patch.
Differential Revision: http://reviews.llvm.org/D8609
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233199 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-25 17:36:01 +00:00
..
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 17:24:31 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 17:24:31 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 17:24:31 +00:00
2015-03-03 17:24:31 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 17:24:31 +00:00
2015-03-03 17:24:31 +00:00
2015-03-03 17:24:31 +00:00
2015-03-03 17:24:31 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 17:24:31 +00:00
2015-03-03 17:24:31 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 17:24:31 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-16 17:01:34 +00:00
2015-03-05 06:38:42 +00:00
2015-03-19 22:29:40 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 17:24:31 +00:00
2015-03-23 21:54:07 +00:00
2015-03-03 17:24:31 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 22:18:18 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-07 12:24:55 +00:00
2015-03-13 18:20:45 +00:00
2015-03-25 11:44:19 +00:00
2015-03-25 11:44:19 +00:00
2015-03-12 23:16:18 +00:00
2015-03-12 23:16:18 +00:00
2015-03-01 07:44:04 +00:00
2015-03-14 01:43:57 +00:00
2015-03-19 22:29:40 +00:00
2015-03-25 17:36:01 +00:00
2015-03-06 21:19:32 +00:00
2015-03-12 15:15:19 +00:00
2015-03-18 16:38:44 +00:00
2015-03-05 06:38:42 +00:00
2015-03-25 17:34:11 +00:00
2015-03-06 21:24:56 +00:00
2015-03-10 16:08:36 +00:00
2015-03-24 19:19:07 +00:00
2015-03-06 20:58:15 +00:00
2015-03-05 01:07:03 +00:00
2015-03-18 01:34:06 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-06 19:49:10 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 01:21:16 +00:00
2015-03-16 14:25:08 +00:00
2015-03-13 18:20:45 +00:00
2015-03-18 17:56:09 +00:00
2015-03-20 10:00:37 +00:00
2015-03-10 21:48:15 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-11 16:16:09 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 17:24:31 +00:00
2015-03-03 17:24:31 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 17:24:31 +00:00
2015-03-09 22:45:16 +00:00
2015-03-04 00:27:43 +00:00
2015-03-04 01:35:23 +00:00
2015-03-17 12:54:04 +00:00
2015-03-09 22:51:05 +00:00
2015-03-04 02:09:40 +00:00
2015-03-04 14:23:25 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 01:09:14 +00:00
2015-03-05 21:46:54 +00:00
2015-03-17 23:54:51 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-01 00:09:35 +00:00
2015-03-06 20:51:25 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 17:24:31 +00:00
2015-03-24 23:46:01 +00:00
2015-03-21 03:13:10 +00:00
2015-03-21 03:13:10 +00:00
2015-03-13 18:20:45 +00:00
2015-03-09 22:45:16 +00:00
2015-03-09 22:45:16 +00:00
2015-03-11 23:36:10 +00:00
2015-03-17 23:54:51 +00:00
2015-03-06 21:50:27 +00:00
2015-03-06 21:50:42 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-01 00:02:03 +00:00
2015-03-06 19:49:10 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 17:29:49 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 17:24:31 +00:00
2015-03-05 15:11:35 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-16 21:10:12 +00:00
2015-03-07 05:52:42 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-16 21:36:38 +00:00
2015-03-13 18:20:45 +00:00
2015-03-16 21:10:12 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 10:23:11 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-07 05:52:42 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-09 15:02:01 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-12 15:16:58 +00:00
2015-03-14 10:58:38 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-20 21:19:52 +00:00
2015-03-14 23:16:43 +00:00
2015-03-12 19:34:12 +00:00
2015-03-14 23:16:43 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 17:24:31 +00:00
2015-03-04 01:35:23 +00:00
2015-03-10 16:26:48 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-06 20:34:20 +00:00
2015-03-04 01:19:17 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-10 16:08:36 +00:00
2015-03-13 18:20:45 +00:00
2015-03-03 17:24:31 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-06 21:30:18 +00:00
2015-03-15 16:19:15 +00:00
2015-03-06 20:38:55 +00:00
2015-03-06 20:46:16 +00:00
2015-03-06 01:13:01 +00:00
2015-03-21 14:05:12 +00:00
2015-03-13 18:20:45 +00:00
2015-03-09 22:51:05 +00:00
2015-03-05 17:14:04 +00:00
2015-03-05 17:14:04 +00:00
2015-03-05 17:14:04 +00:00
2015-03-05 17:14:04 +00:00
2015-03-05 06:38:42 +00:00
2015-03-19 22:29:40 +00:00
2015-03-08 16:28:47 +00:00
2015-03-05 17:14:04 +00:00
2015-03-18 22:18:51 +00:00
2015-03-12 00:36:20 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-23 22:44:55 +00:00
2015-03-18 22:51:45 +00:00
2015-03-04 00:49:12 +00:00
2015-03-13 18:20:45 +00:00
2015-03-18 00:03:36 +00:00
2015-03-06 19:49:10 +00:00
2015-03-18 12:45:45 +00:00