Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/i386/sse.md @ 36:855418dad1a3
gcc-4.4-20091020
author | e075725 |
---|---|
date | Tue, 22 Dec 2009 21:19:31 +0900 |
parents | 58ad6c70ea60 |
children | 3bfb6c00c1e0 |
comparison
equal
deleted
inserted
replaced
19:58ad6c70ea60 | 36:855418dad1a3 |
---|---|
61 (define_mode_iterator AVXMODEDCVTPS2DQ [V4SI V8SI]) | 61 (define_mode_iterator AVXMODEDCVTPS2DQ [V4SI V8SI]) |
62 | 62 |
63 ;; Int-float size matches | 63 ;; Int-float size matches |
64 (define_mode_iterator SSEMODE4S [V4SF V4SI]) | 64 (define_mode_iterator SSEMODE4S [V4SF V4SI]) |
65 (define_mode_iterator SSEMODE2D [V2DF V2DI]) | 65 (define_mode_iterator SSEMODE2D [V2DF V2DI]) |
66 | |
67 ;; Modes handled by integer vcond pattern | |
68 (define_mode_iterator SSEMODE124C8 [V16QI V8HI V4SI | |
69 (V2DI "TARGET_SSE4_2 || TARGET_SSE5")]) | |
66 | 70 |
67 ;; Mapping from float mode to required SSE level | 71 ;; Mapping from float mode to required SSE level |
68 (define_mode_attr sse [(SF "sse") (DF "sse2") (V4SF "sse") (V2DF "sse2")]) | 72 (define_mode_attr sse [(SF "sse") (DF "sse2") (V4SF "sse") (V2DF "sse2")]) |
69 | 73 |
70 ;; Mapping from integer vector mode to mnemonic suffix | 74 ;; Mapping from integer vector mode to mnemonic suffix |
1491 (match_operand:SSEMODEF2P 5 "nonimmediate_operand" "")]) | 1495 (match_operand:SSEMODEF2P 5 "nonimmediate_operand" "")]) |
1492 (match_operand:SSEMODEF2P 1 "general_operand" "") | 1496 (match_operand:SSEMODEF2P 1 "general_operand" "") |
1493 (match_operand:SSEMODEF2P 2 "general_operand" "")))] | 1497 (match_operand:SSEMODEF2P 2 "general_operand" "")))] |
1494 "SSE_VEC_FLOAT_MODE_P (<MODE>mode)" | 1498 "SSE_VEC_FLOAT_MODE_P (<MODE>mode)" |
1495 { | 1499 { |
1496 if (ix86_expand_fp_vcond (operands)) | 1500 bool ok = ix86_expand_fp_vcond (operands); |
1497 DONE; | 1501 gcc_assert (ok); |
1498 else | 1502 DONE; |
1499 FAIL; | |
1500 }) | 1503 }) |
1501 | 1504 |
1502 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 1505 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1503 ;; | 1506 ;; |
1504 ;; Parallel floating point logical operations | 1507 ;; Parallel floating point logical operations |
5835 "pcmpgtq\t{%2, %0|%0, %2}" | 5838 "pcmpgtq\t{%2, %0|%0, %2}" |
5836 [(set_attr "type" "ssecmp") | 5839 [(set_attr "type" "ssecmp") |
5837 (set_attr "mode" "TI")]) | 5840 (set_attr "mode" "TI")]) |
5838 | 5841 |
5839 (define_expand "vcond<mode>" | 5842 (define_expand "vcond<mode>" |
5840 [(set (match_operand:SSEMODEI 0 "register_operand" "") | 5843 [(set (match_operand:SSEMODE124C8 0 "register_operand" "") |
5841 (if_then_else:SSEMODEI | 5844 (if_then_else:SSEMODE124C8 |
5842 (match_operator 3 "" | 5845 (match_operator 3 "" |
5843 [(match_operand:SSEMODEI 4 "nonimmediate_operand" "") | 5846 [(match_operand:SSEMODE124C8 4 "nonimmediate_operand" "") |
5844 (match_operand:SSEMODEI 5 "nonimmediate_operand" "")]) | 5847 (match_operand:SSEMODE124C8 5 "nonimmediate_operand" "")]) |
5845 (match_operand:SSEMODEI 1 "general_operand" "") | 5848 (match_operand:SSEMODE124C8 1 "general_operand" "") |
5846 (match_operand:SSEMODEI 2 "general_operand" "")))] | 5849 (match_operand:SSEMODE124C8 2 "general_operand" "")))] |
5847 "TARGET_SSE2" | 5850 "TARGET_SSE2" |
5848 { | 5851 { |
5849 if (ix86_expand_int_vcond (operands)) | 5852 bool ok = ix86_expand_int_vcond (operands); |
5850 DONE; | 5853 gcc_assert (ok); |
5851 else | 5854 DONE; |
5852 FAIL; | |
5853 }) | 5855 }) |
5854 | 5856 |
5855 (define_expand "vcondu<mode>" | 5857 (define_expand "vcondu<mode>" |
5856 [(set (match_operand:SSEMODEI 0 "register_operand" "") | 5858 [(set (match_operand:SSEMODE124C8 0 "register_operand" "") |
5857 (if_then_else:SSEMODEI | 5859 (if_then_else:SSEMODE124C8 |
5858 (match_operator 3 "" | 5860 (match_operator 3 "" |
5859 [(match_operand:SSEMODEI 4 "nonimmediate_operand" "") | 5861 [(match_operand:SSEMODE124C8 4 "nonimmediate_operand" "") |
5860 (match_operand:SSEMODEI 5 "nonimmediate_operand" "")]) | 5862 (match_operand:SSEMODE124C8 5 "nonimmediate_operand" "")]) |
5861 (match_operand:SSEMODEI 1 "general_operand" "") | 5863 (match_operand:SSEMODE124C8 1 "general_operand" "") |
5862 (match_operand:SSEMODEI 2 "general_operand" "")))] | 5864 (match_operand:SSEMODE124C8 2 "general_operand" "")))] |
5863 "TARGET_SSE2" | 5865 "TARGET_SSE2" |
5864 { | 5866 { |
5865 if (ix86_expand_int_vcond (operands)) | 5867 bool ok = ix86_expand_int_vcond (operands); |
5866 DONE; | 5868 gcc_assert (ok); |
5867 else | 5869 DONE; |
5868 FAIL; | |
5869 }) | 5870 }) |
5870 | 5871 |
5871 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 5872 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
5872 ;; | 5873 ;; |
5873 ;; Parallel bitwise logical operations | 5874 ;; Parallel bitwise logical operations |