Sanjay Patel
6902c687b0
Optimize vector fabs of bitcasted constant integer values.
...
Allow vector fabs operations on bitcasted constant integer values to be optimized
in the same way that we already optimize scalar fabs.
So for code like this:
%bitcast = bitcast i64 18446744069414584320 to <2 x float> ; 0xFFFF_FFFF_0000_0000
%fabs = call <2 x float> @llvm.fabs.v2f32(<2 x float> %bitcast)
%ret = bitcast <2 x float> %fabs to i64
Instead of generating something like this:
movabsq (constant pool loadi of mask for sign bits)
vmovq (move from integer register to vector/fp register)
vandps (mask off sign bits)
vmovq (move vector/fp register back to integer return register)
We should generate:
mov (put constant value in return register)
I have also removed a redundant clause in the first 'if' statement:
N0.getOperand(0).getValueType().isInteger()
is the same thing as:
IntVT.isInteger()
Testcases for x86 and ARM added to existing files that deal with vector fabs.
One existing testcase for x86 removed because it is no longer ideal.
For more background, please see:
http://reviews.llvm.org/D4770
And:
http://llvm.org/bugs/show_bug.cgi?id=20354
Differential Revision: http://reviews.llvm.org/D4785
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214892 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-05 17:35:22 +00:00
..
2014-07-19 01:29:51 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-14 16:53:50 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 08:59:55 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-03-13 16:23:00 +00:00
2014-05-16 18:26:53 +00:00
2014-05-30 10:09:59 +00:00
2014-03-12 11:29:23 +00:00
2014-08-05 16:20:25 +00:00
2014-05-30 10:09:59 +00:00
2014-05-30 08:59:55 +00:00
2014-03-13 23:18:37 +00:00
2014-03-11 15:09:49 +00:00
2014-03-11 15:09:49 +00:00
2014-04-01 08:07:52 +00:00
2014-02-16 07:31:05 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-03-05 15:25:27 +00:00
2014-03-11 15:09:44 +00:00
2014-03-05 15:25:27 +00:00
2014-05-30 08:59:55 +00:00
2014-04-03 23:47:24 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-02-07 11:19:53 +00:00
2014-03-11 15:09:44 +00:00
2014-05-14 11:13:31 +00:00
2014-07-23 08:39:50 +00:00
2014-04-03 16:01:44 +00:00
2014-03-20 05:36:59 +00:00
2014-04-03 16:01:44 +00:00
2014-07-24 22:15:28 +00:00
2014-05-09 16:20:53 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-07-30 22:51:54 +00:00
2014-04-03 17:35:22 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-01-29 11:50:56 +00:00
2014-06-13 16:45:52 +00:00
2014-06-13 14:24:07 +00:00
2014-07-21 17:33:44 +00:00
2014-05-30 14:41:51 +00:00
2014-06-13 14:24:07 +00:00
2014-06-13 14:24:07 +00:00
2014-04-03 16:01:44 +00:00
2014-04-29 10:13:10 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-13 16:44:30 +00:00
2014-05-12 11:19:20 +00:00
2014-06-23 18:05:53 +00:00
2014-06-16 09:17:30 +00:00
2014-06-01 09:30:52 +00:00
2014-05-14 16:59:44 +00:00
2014-05-14 16:59:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-12 22:13:07 +00:00
2014-07-25 14:03:14 +00:00
2014-03-26 12:52:28 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-06-13 14:24:07 +00:00
2014-06-13 16:45:52 +00:00
2014-02-04 01:23:52 +00:00
2014-04-03 16:01:44 +00:00
2014-02-16 07:31:05 +00:00
2014-02-13 14:44:26 +00:00
2014-04-03 16:01:44 +00:00
2014-05-12 11:19:20 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-03-13 15:56:41 +00:00
2014-02-14 17:19:07 +00:00
2014-05-06 20:43:01 +00:00
2014-05-06 20:43:01 +00:00
2014-06-24 20:10:27 +00:00
2014-06-30 17:17:35 +00:00
2014-07-25 16:05:18 +00:00
2014-02-27 17:56:08 +00:00
2014-02-27 17:56:08 +00:00
2014-02-27 17:56:08 +00:00
2014-04-10 22:58:43 +00:00
2014-05-07 07:49:34 +00:00
2014-04-03 16:01:44 +00:00
2014-01-29 11:50:56 +00:00
2014-05-14 16:38:30 +00:00
2014-05-14 16:37:32 +00:00
2014-01-29 11:50:56 +00:00
2014-01-29 11:50:56 +00:00
2014-05-07 07:49:34 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-08-05 17:35:22 +00:00
2014-04-03 16:01:44 +00:00
2014-08-01 18:04:14 +00:00
2014-07-16 22:20:51 +00:00
2014-03-11 15:09:49 +00:00
2014-02-11 23:49:31 +00:00
2014-02-04 10:38:46 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-07-23 07:08:53 +00:00
2014-04-03 16:01:44 +00:00
2014-07-29 09:56:45 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-05-18 04:12:52 +00:00
2014-04-03 16:01:44 +00:00
2014-05-08 22:45:07 +00:00
2014-06-11 06:44:53 +00:00
2014-07-18 13:01:19 +00:00
2014-04-03 16:01:44 +00:00
2014-05-09 14:01:47 +00:00
2014-04-25 17:24:24 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-04-14 16:56:19 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-29 10:06:05 +00:00
2014-04-03 16:01:44 +00:00
2014-03-07 06:08:31 +00:00
2014-05-30 10:09:59 +00:00
2014-03-07 06:08:31 +00:00
2014-03-21 07:20:29 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-02-13 14:44:26 +00:00
2014-07-25 09:55:01 +00:00
2014-04-03 16:01:44 +00:00
2014-02-04 17:22:40 +00:00
2014-01-24 15:59:50 +00:00
2014-01-24 15:59:50 +00:00
2014-01-24 15:59:50 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 13:23:06 +00:00
2014-02-03 17:27:49 +00:00
2014-07-03 16:00:41 +00:00
2014-05-09 21:52:48 +00:00
2014-04-25 17:51:25 +00:00
2014-04-03 16:01:44 +00:00
2014-06-05 21:40:13 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 15:10:35 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-02-16 13:28:15 +00:00
2014-06-16 18:49:36 +00:00
2014-04-03 15:10:35 +00:00
2014-06-09 22:42:55 +00:00
2014-04-03 16:01:44 +00:00
2014-05-08 14:06:24 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-08 14:06:24 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-02-13 16:49:47 +00:00
2014-04-03 16:01:44 +00:00
2014-05-16 14:24:22 +00:00
2014-06-20 10:08:11 +00:00
2014-06-20 10:08:11 +00:00
2014-06-20 10:08:11 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 17:35:22 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 17:35:22 +00:00
2014-04-03 16:01:44 +00:00
2014-02-13 14:44:26 +00:00
2014-04-12 04:47:04 +00:00
2014-05-06 16:51:25 +00:00
2014-05-06 16:51:25 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 13:23:06 +00:00
2014-02-25 16:57:28 +00:00
2014-06-20 15:30:38 +00:00
2014-04-02 09:03:43 +00:00
2014-04-03 16:01:44 +00:00
2014-07-15 17:18:41 +00:00
2014-04-03 16:01:44 +00:00
2014-04-12 00:59:48 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 17:35:22 +00:00
2014-04-03 17:35:22 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-03-11 15:09:49 +00:00
2014-03-11 15:09:49 +00:00
2014-04-03 16:01:44 +00:00
2014-07-23 13:59:12 +00:00
2014-05-06 20:43:01 +00:00
2014-05-22 13:03:43 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-07-14 18:21:11 +00:00
2014-04-03 17:35:22 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-02-01 01:36:16 +00:00
2014-08-02 05:40:40 +00:00
2014-04-23 01:09:29 +00:00
2014-05-06 16:51:25 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-01-24 17:20:08 +00:00
2014-05-30 10:09:59 +00:00
2014-05-08 14:06:24 +00:00
2014-02-13 14:44:26 +00:00
2014-07-23 07:08:53 +00:00
2014-04-03 23:47:24 +00:00
2014-03-25 03:39:39 +00:00
2014-04-03 16:01:44 +00:00
2014-03-11 15:09:49 +00:00
2014-08-05 17:13:17 +00:00
2014-04-03 23:47:24 +00:00
2014-04-15 21:30:06 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-22 04:46:46 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-03-11 15:09:44 +00:00
2014-05-30 08:59:55 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-02-16 18:59:48 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-12 11:19:20 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-07-15 17:18:41 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-22 10:10:09 +00:00
2014-03-12 11:29:23 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-07-15 17:18:41 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-19 13:12:38 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 08:59:55 +00:00
2014-04-01 13:22:02 +00:00
2014-05-14 21:14:37 +00:00