| OLD | NEW |
| 1 ; RUN: llc < %s -march=x86 -mcpu=yonah -mtriple=i386-apple-darwin | FileCheck %s | 1 ; RUN: llc < %s -march=x86 -mcpu=yonah -mtriple=i386-apple-darwin | FileCheck %s |
| 2 | 2 |
| 3 | 3 |
| 4 define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) nounwind { | 4 define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) nounwind { |
| 5 ; CHECK: test1: | 5 ; CHECK: test1: |
| 6 ; CHECK: pcmpgtd | 6 ; CHECK: pcmpgtd |
| 7 ; CHECK: ret | 7 ; CHECK: ret |
| 8 | 8 |
| 9 %C = icmp sgt <4 x i32> %A, %B | 9 %C = icmp sgt <4 x i32> %A, %B |
| 10 %D = sext <4 x i1> %C to <4 x i32> | 10 %D = sext <4 x i1> %C to <4 x i32> |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 ; CHECK: pand | 60 ; CHECK: pand |
| 61 ; CHECK: pcmpeqd | 61 ; CHECK: pcmpeqd |
| 62 ; CHECK: pxor | 62 ; CHECK: pxor |
| 63 ; CHECK: ret | 63 ; CHECK: ret |
| 64 %C = icmp ne <2 x i64> %A, %B | 64 %C = icmp ne <2 x i64> %A, %B |
| 65 %D = sext <2 x i1> %C to <2 x i64> | 65 %D = sext <2 x i1> %C to <2 x i64> |
| 66 ret <2 x i64> %D | 66 ret <2 x i64> %D |
| 67 } | 67 } |
| 68 | 68 |
| 69 define <2 x i64> @test7(<2 x i64> %A, <2 x i64> %B) nounwind { | 69 define <2 x i64> @test7(<2 x i64> %A, <2 x i64> %B) nounwind { |
| 70 ; CHECK: [[CONSTSEG:[A-Z0-9_]*]]: | |
| 71 ; CHECK: .long 2147483648 | |
| 72 ; CHECK-NEXT: .long 0 | |
| 73 ; CHECK-NEXT: .long 2147483648 | |
| 74 ; CHECK-NEXT: .long 0 | |
| 75 ; CHECK: test7: | 70 ; CHECK: test7: |
| 76 ; CHECK: movdqa [[CONSTSEG]], [[CONSTREG:%xmm[0-9]*]] | |
| 77 ; CHECK: pxor [[CONSTREG]] | |
| 78 ; CHECK: pxor [[CONSTREG]] | |
| 79 ; CHECK: pcmpgtd %xmm1 | 71 ; CHECK: pcmpgtd %xmm1 |
| 80 ; CHECK: pshufd $-96 | 72 ; CHECK: pshufd $-96 |
| 81 ; CHECK: pcmpeqd | 73 ; CHECK: pcmpeqd |
| 82 ; CHECK: pshufd $-11 | 74 ; CHECK: pshufd $-11 |
| 83 ; CHECK: pand | 75 ; CHECK: pand |
| 84 ; CHECK: pshufd $-11 | 76 ; CHECK: pshufd $-11 |
| 85 ; CHECK: por | 77 ; CHECK: por |
| 86 ; CHECK: ret | 78 ; CHECK: ret |
| 87 %C = icmp sgt <2 x i64> %A, %B | 79 %C = icmp sgt <2 x i64> %A, %B |
| 88 %D = sext <2 x i1> %C to <2 x i64> | 80 %D = sext <2 x i1> %C to <2 x i64> |
| 89 ret <2 x i64> %D | 81 ret <2 x i64> %D |
| 90 } | 82 } |
| 91 | 83 |
| 92 define <2 x i64> @test8(<2 x i64> %A, <2 x i64> %B) nounwind { | 84 define <2 x i64> @test8(<2 x i64> %A, <2 x i64> %B) nounwind { |
| 93 ; CHECK: test8: | 85 ; CHECK: test8: |
| 94 ; CHECK: pxor | |
| 95 ; CHECK: pxor | |
| 96 ; CHECK: pcmpgtd %xmm0 | 86 ; CHECK: pcmpgtd %xmm0 |
| 97 ; CHECK: pshufd $-96 | 87 ; CHECK: pshufd $-96 |
| 98 ; CHECK: pcmpeqd | 88 ; CHECK: pcmpeqd |
| 99 ; CHECK: pshufd $-11 | 89 ; CHECK: pshufd $-11 |
| 100 ; CHECK: pand | 90 ; CHECK: pand |
| 101 ; CHECK: pshufd $-11 | 91 ; CHECK: pshufd $-11 |
| 102 ; CHECK: por | 92 ; CHECK: por |
| 103 ; CHECK: ret | 93 ; CHECK: ret |
| 104 %C = icmp slt <2 x i64> %A, %B | 94 %C = icmp slt <2 x i64> %A, %B |
| 105 %D = sext <2 x i1> %C to <2 x i64> | 95 %D = sext <2 x i1> %C to <2 x i64> |
| 106 ret <2 x i64> %D | 96 ret <2 x i64> %D |
| 107 } | 97 } |
| 108 | 98 |
| 109 define <2 x i64> @test9(<2 x i64> %A, <2 x i64> %B) nounwind { | 99 define <2 x i64> @test9(<2 x i64> %A, <2 x i64> %B) nounwind { |
| 110 ; CHECK: test9: | 100 ; CHECK: test9: |
| 111 ; CHECK: pxor | |
| 112 ; CHECK: pxor | |
| 113 ; CHECK: pcmpgtd %xmm0 | 101 ; CHECK: pcmpgtd %xmm0 |
| 114 ; CHECK: pshufd $-96 | 102 ; CHECK: pshufd $-96 |
| 115 ; CHECK: pcmpeqd | 103 ; CHECK: pcmpeqd |
| 116 ; CHECK: pshufd $-11 | 104 ; CHECK: pshufd $-11 |
| 117 ; CHECK: pand | 105 ; CHECK: pand |
| 118 ; CHECK: pshufd $-11 | 106 ; CHECK: pshufd $-11 |
| 119 ; CHECK: por | 107 ; CHECK: por |
| 120 ; CHECK: pcmpeqd | 108 ; CHECK: pcmpeqd |
| 121 ; CHECK: pxor | 109 ; CHECK: pxor |
| 122 ; CHECK: ret | 110 ; CHECK: ret |
| 123 %C = icmp sge <2 x i64> %A, %B | 111 %C = icmp sge <2 x i64> %A, %B |
| 124 %D = sext <2 x i1> %C to <2 x i64> | 112 %D = sext <2 x i1> %C to <2 x i64> |
| 125 ret <2 x i64> %D | 113 ret <2 x i64> %D |
| 126 } | 114 } |
| 127 | 115 |
| 128 define <2 x i64> @test10(<2 x i64> %A, <2 x i64> %B) nounwind { | 116 define <2 x i64> @test10(<2 x i64> %A, <2 x i64> %B) nounwind { |
| 129 ; CHECK: test10: | 117 ; CHECK: test10: |
| 130 ; CHECK: pxor | |
| 131 ; CHECK: pxor | |
| 132 ; CHECK: pcmpgtd %xmm1 | 118 ; CHECK: pcmpgtd %xmm1 |
| 133 ; CHECK: pshufd $-96 | 119 ; CHECK: pshufd $-96 |
| 134 ; CHECK: pcmpeqd | 120 ; CHECK: pcmpeqd |
| 135 ; CHECK: pshufd $-11 | 121 ; CHECK: pshufd $-11 |
| 136 ; CHECK: pand | 122 ; CHECK: pand |
| 137 ; CHECK: pshufd $-11 | 123 ; CHECK: pshufd $-11 |
| 138 ; CHECK: por | 124 ; CHECK: por |
| 139 ; CHECK: pcmpeqd | 125 ; CHECK: pcmpeqd |
| 140 ; CHECK: pxor | 126 ; CHECK: pxor |
| 141 ; CHECK: ret | 127 ; CHECK: ret |
| 142 %C = icmp sle <2 x i64> %A, %B | 128 %C = icmp sle <2 x i64> %A, %B |
| 143 %D = sext <2 x i1> %C to <2 x i64> | 129 %D = sext <2 x i1> %C to <2 x i64> |
| 144 ret <2 x i64> %D | 130 ret <2 x i64> %D |
| 145 } | 131 } |
| 146 | 132 |
| 147 define <2 x i64> @test11(<2 x i64> %A, <2 x i64> %B) nounwind { | 133 define <2 x i64> @test11(<2 x i64> %A, <2 x i64> %B) nounwind { |
| 148 ; CHECK: [[CONSTSEG:[A-Z0-9_]*]]: | |
| 149 ; CHECK: .long 2147483648 | |
| 150 ; CHECK-NEXT: .long 2147483648 | |
| 151 ; CHECK-NEXT: .long 2147483648 | |
| 152 ; CHECK-NEXT: .long 2147483648 | |
| 153 ; CHECK: test11: | 134 ; CHECK: test11: |
| 154 ; CHECK: movdqa [[CONSTSEG]], [[CONSTREG:%xmm[0-9]*]] | 135 ; CHECK: pxor |
| 155 ; CHECK: pxor [[CONSTREG]] | 136 ; CHECK: pxor |
| 156 ; CHECK: pxor [[CONSTREG]] | |
| 157 ; CHECK: pcmpgtd %xmm1 | 137 ; CHECK: pcmpgtd %xmm1 |
| 158 ; CHECK: pshufd $-96 | 138 ; CHECK: pshufd $-96 |
| 159 ; CHECK: pcmpeqd | 139 ; CHECK: pcmpeqd |
| 160 ; CHECK: pshufd $-11 | 140 ; CHECK: pshufd $-11 |
| 161 ; CHECK: pand | 141 ; CHECK: pand |
| 162 ; CHECK: pshufd $-11 | 142 ; CHECK: pshufd $-11 |
| 163 ; CHECK: por | 143 ; CHECK: por |
| 164 ; CHECK: ret | 144 ; CHECK: ret |
| 165 %C = icmp ugt <2 x i64> %A, %B | 145 %C = icmp ugt <2 x i64> %A, %B |
| 166 %D = sext <2 x i1> %C to <2 x i64> | 146 %D = sext <2 x i1> %C to <2 x i64> |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 ; CHECK: pand | 194 ; CHECK: pand |
| 215 ; CHECK: pshufd $-11 | 195 ; CHECK: pshufd $-11 |
| 216 ; CHECK: por | 196 ; CHECK: por |
| 217 ; CHECK: pcmpeqd | 197 ; CHECK: pcmpeqd |
| 218 ; CHECK: pxor | 198 ; CHECK: pxor |
| 219 ; CHECK: ret | 199 ; CHECK: ret |
| 220 %C = icmp ule <2 x i64> %A, %B | 200 %C = icmp ule <2 x i64> %A, %B |
| 221 %D = sext <2 x i1> %C to <2 x i64> | 201 %D = sext <2 x i1> %C to <2 x i64> |
| 222 ret <2 x i64> %D | 202 ret <2 x i64> %D |
| 223 } | 203 } |
| OLD | NEW |