| OLD | NEW |
| 1 /* This testcase is part of GDB, the GNU debugger. | 1 /* This testcase is part of GDB, the GNU debugger. |
| 2 | 2 |
| 3 Copyright 2009-2012 Free Software Foundation, Inc. | 3 Copyright 2009-2012 Free Software Foundation, Inc. |
| 4 | 4 |
| 5 This program is free software; you can redistribute it and/or modify | 5 This program is free software; you can redistribute it and/or modify |
| 6 it under the terms of the GNU General Public License as published by | 6 it under the terms of the GNU General Public License as published by |
| 7 the Free Software Foundation; either version 3 of the License, or | 7 the Free Software Foundation; either version 3 of the License, or |
| 8 (at your option) any later version. | 8 (at your option) any later version. |
| 9 | 9 |
| 10 This program is distributed in the hope that it will be useful, | 10 This program is distributed in the hope that it will be useful, |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 asm ("divpd %xmm1, %xmm2"); | 52 asm ("divpd %xmm1, %xmm2"); |
| 53 asm ("divps %xmm2, %xmm1"); | 53 asm ("divps %xmm2, %xmm1"); |
| 54 asm ("divsd %xmm1, %xmm0"); | 54 asm ("divsd %xmm1, %xmm0"); |
| 55 asm ("divss %xmm0, %xmm2"); | 55 asm ("divss %xmm0, %xmm2"); |
| 56 asm ("mulpd %xmm0, %xmm1"); | 56 asm ("mulpd %xmm0, %xmm1"); |
| 57 asm ("mulps %xmm1, %xmm2"); | 57 asm ("mulps %xmm1, %xmm2"); |
| 58 asm ("mulsd %xmm2, %xmm1"); | 58 asm ("mulsd %xmm2, %xmm1"); |
| 59 asm ("mulss %xmm1, %xmm0"); | 59 asm ("mulss %xmm1, %xmm0"); |
| 60 asm ("orpd %xmm2, %xmm0"); | 60 asm ("orpd %xmm2, %xmm0"); |
| 61 asm ("orps %xmm0, %xmm1"); | 61 asm ("orps %xmm0, %xmm1"); |
| 62 asm ("pabsb %xmm1, %xmm2"); | |
| 63 asm ("pabsw %xmm2, %xmm1"); | |
| 64 asm ("pabsd %xmm1, %xmm0"); | |
| 65 asm ("packsswb %xmm0, %xmm2"); | 62 asm ("packsswb %xmm0, %xmm2"); |
| 66 asm ("packssdw %xmm0, %xmm1"); | 63 asm ("packssdw %xmm0, %xmm1"); |
| 67 asm ("ucomisd %xmm1, %xmm2"); | 64 asm ("ucomisd %xmm1, %xmm2"); |
| 68 asm ("ucomiss %xmm2, %xmm1"); | 65 asm ("ucomiss %xmm2, %xmm1"); |
| 69 asm ("unpckhpd %xmm1, %xmm0"); | 66 asm ("unpckhpd %xmm1, %xmm0"); |
| 70 asm ("unpckhps %xmm2, %xmm0"); | 67 asm ("unpckhps %xmm2, %xmm0"); |
| 71 asm ("xorpd %xmm0, %xmm1"); | 68 asm ("xorpd %xmm0, %xmm1"); |
| 72 asm ("xorps %xmm1, %xmm2"); | 69 asm ("xorps %xmm1, %xmm2"); |
| 73 } /* end sse_test */ | 70 } /* end sse_test */ |
| 74 | 71 |
| 75 void | 72 void |
| 73 ssse3_test (void) |
| 74 { |
| 75 char buf0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, |
| 76 9, 10, 11, 12, 13, 14, 15}; |
| 77 char buf1[] = {16, 17, 18, 19, 20, 21, 22, 23, |
| 78 24, 25, 26, 27, 28, 29, 30, 31}; |
| 79 char buf2[] = {32, 33, 34, 35, 36, 37, 38, 39, |
| 80 40, 41, 42, 43, 44, 45, 46, 47}; |
| 81 |
| 82 asm ("movupd %0, %%xmm0":"=m"(buf0)); |
| 83 asm ("movupd %0, %%xmm1":"=m"(buf1)); |
| 84 asm ("movupd %0, %%xmm2":"=m"(buf2)); |
| 85 |
| 86 asm ("pabsb %xmm1, %xmm2"); |
| 87 asm ("pabsw %xmm2, %xmm1"); |
| 88 asm ("pabsd %xmm1, %xmm0"); |
| 89 } /* end ssse3_test */ |
| 90 |
| 91 void |
| 76 sse4_test (void) | 92 sse4_test (void) |
| 77 { | 93 { |
| 78 char buf0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, | 94 char buf0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, |
| 79 9, 10, 11, 12, 13, 14, 15}; | 95 9, 10, 11, 12, 13, 14, 15}; |
| 80 char buf1[] = {16, 17, 18, 19, 20, 21, 22, 23, | 96 char buf1[] = {16, 17, 18, 19, 20, 21, 22, 23, |
| 81 24, 25, 26, 27, 28, 29, 30, 31}; | 97 24, 25, 26, 27, 28, 29, 30, 31}; |
| 82 char buf2[] = {32, 33, 34, 35, 36, 37, 38, 39, | 98 char buf2[] = {32, 33, 34, 35, 36, 37, 38, 39, |
| 83 40, 41, 42, 43, 44, 45, 46, 47}; | 99 40, 41, 42, 43, 44, 45, 46, 47}; |
| 84 | 100 |
| 85 asm ("movupd %0, %%xmm0":"=m"(buf0)); | 101 asm ("movupd %0, %%xmm0":"=m"(buf0)); |
| 86 asm ("movupd %0, %%xmm1":"=m"(buf1)); | 102 asm ("movupd %0, %%xmm1":"=m"(buf1)); |
| 87 asm ("movupd %0, %%xmm2":"=m"(buf2)); | 103 asm ("movupd %0, %%xmm2":"=m"(buf2)); |
| 88 | 104 |
| 89 asm ("blendpd $1, %xmm1, %xmm0"); | 105 asm ("blendpd $1, %xmm1, %xmm0"); |
| 90 asm ("blendps $2, %xmm2, %xmm0"); | 106 asm ("blendps $2, %xmm2, %xmm0"); |
| 91 asm ("blendvpd %xmm0, %xmm1, %xmm2"); | 107 asm ("blendvpd %xmm0, %xmm1, %xmm2"); |
| 92 asm ("blendvps %xmm0, %xmm2, %xmm1"); | 108 asm ("blendvps %xmm0, %xmm2, %xmm1"); |
| 93 } /* end sse4_test */ | 109 } /* end sse4_test */ |
| 94 | 110 |
| 95 int | 111 int |
| 96 main () | 112 main () |
| 97 { | 113 { |
| 98 sse_test (); | 114 sse_test (); |
| 115 ssse3_test (); |
| 99 sse4_test (); | 116 sse4_test (); |
| 100 return 0; /* end of main */ | 117 return 0; /* end of main */ |
| 101 } | 118 } |
| OLD | NEW |