|
1 | | -// RUN: %clang_cc1 -x c -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +bmi -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,TZCNT |
2 | | -// RUN: %clang_cc1 -x c -fms-extensions -fms-compatibility -fms-compatibility-version=17.00 -ffreestanding %s -triple=x86_64-windows-msvc -emit-llvm -o - -Wall -Werror -DTEST_TZCNT | FileCheck %s --check-prefix=TZCNT |
3 | | -// RUN: %clang_cc1 -x c++ -std=c++11 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +bmi -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,TZCNT |
4 | | -// RUN: %clang_cc1 -x c++ -std=c++11 -fms-extensions -fms-compatibility -fms-compatibility-version=17.00 -ffreestanding %s -triple=x86_64-windows-msvc -emit-llvm -o - -Wall -Werror -DTEST_TZCNT | FileCheck %s --check-prefix=TZCNT |
| 1 | +// RUN: %clang_cc1 -x c -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +bmi -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X64,TZCNT,TZCNT64 |
| 2 | +// RUN: %clang_cc1 -x c -ffreestanding %s -triple=i386-apple-darwin -target-feature +bmi -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,TZCNT |
| 3 | +// RUN: %clang_cc1 -x c -fms-extensions -fms-compatibility -fms-compatibility-version=17.00 -ffreestanding %s -triple=x86_64-windows-msvc -emit-llvm -o - -Wall -Werror -DTEST_TZCNT | FileCheck %s --check-prefixes=TZCNT,TZCNT64 |
| 4 | +// RUN: %clang_cc1 -x c++ -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +bmi -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X64,TZCNT,TZCNT64 |
| 5 | +// RUN: %clang_cc1 -x c++ -ffreestanding %s -triple=i386-apple-darwin -target-feature +bmi -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,TZCNT |
| 6 | +// RUN: %clang_cc1 -x c++ -fms-extensions -fms-compatibility -fms-compatibility-version=17.00 -ffreestanding %s -triple=x86_64-windows-msvc -emit-llvm -o - -Wall -Werror -DTEST_TZCNT | FileCheck %s --check-prefixes=TZCNT,TZCNT64 |
5 | 7 |
|
6 | 8 |
|
7 | 9 | #include <immintrin.h> |
@@ -48,20 +50,20 @@ unsigned int test_tzcnt_u32(unsigned int __X) { |
48 | 50 |
|
49 | 51 | #ifdef __x86_64__ |
50 | 52 | unsigned long long test__tzcnt_u64(unsigned long long __X) { |
51 | | -// TZCNT-LABEL: test__tzcnt_u64 |
52 | | -// TZCNT: i64 @llvm.cttz.i64(i64 %{{.*}}, i1 false) |
| 53 | +// TZCNT64-LABEL: test__tzcnt_u64 |
| 54 | +// TZCNT64: i64 @llvm.cttz.i64(i64 %{{.*}}, i1 false) |
53 | 55 | return __tzcnt_u64(__X); |
54 | 56 | } |
55 | 57 |
|
56 | 58 | long long test_mm_tzcnt_64(unsigned long long __X) { |
57 | | -// TZCNT-LABEL: test_mm_tzcnt_64 |
58 | | -// TZCNT: i64 @llvm.cttz.i64(i64 %{{.*}}, i1 false) |
| 59 | +// TZCNT64-LABEL: test_mm_tzcnt_64 |
| 60 | +// TZCNT64: i64 @llvm.cttz.i64(i64 %{{.*}}, i1 false) |
59 | 61 | return _mm_tzcnt_64(__X); |
60 | 62 | } |
61 | 63 |
|
62 | 64 | unsigned long long test_tzcnt_u64(unsigned long long __X) { |
63 | | -// TZCNT-LABEL: test_tzcnt_u64 |
64 | | -// TZCNT: i64 @llvm.cttz.i64(i64 %{{.*}}, i1 false) |
| 65 | +// TZCNT64-LABEL: test_tzcnt_u64 |
| 66 | +// TZCNT64: i64 @llvm.cttz.i64(i64 %{{.*}}, i1 false) |
65 | 67 | return _tzcnt_u64(__X); |
66 | 68 | } |
67 | 69 | #endif |
@@ -103,36 +105,36 @@ unsigned int test__blsr_u32(unsigned int __X) { |
103 | 105 |
|
104 | 106 | #ifdef __x86_64__ |
105 | 107 | unsigned long long test__andn_u64(unsigned long __X, unsigned long __Y) { |
106 | | -// CHECK-LABEL: test__andn_u64 |
107 | | -// CHECK: xor i64 %{{.*}}, -1 |
108 | | -// CHECK: and i64 %{{.*}}, %{{.*}} |
| 108 | +// X64-LABEL: test__andn_u64 |
| 109 | +// X64: xor i64 %{{.*}}, -1 |
| 110 | +// X64: and i64 %{{.*}}, %{{.*}} |
109 | 111 | return __andn_u64(__X, __Y); |
110 | 112 | } |
111 | 113 |
|
112 | 114 | unsigned long long test__bextr_u64(unsigned long __X, unsigned long __Y) { |
113 | | -// CHECK-LABEL: test__bextr_u64 |
114 | | -// CHECK: i64 @llvm.x86.bmi.bextr.64(i64 %{{.*}}, i64 %{{.*}}) |
| 115 | +// X64-LABEL: test__bextr_u64 |
| 116 | +// X64: i64 @llvm.x86.bmi.bextr.64(i64 %{{.*}}, i64 %{{.*}}) |
115 | 117 | return __bextr_u64(__X, __Y); |
116 | 118 | } |
117 | 119 |
|
118 | 120 | unsigned long long test__blsi_u64(unsigned long long __X) { |
119 | | -// CHECK-LABEL: test__blsi_u64 |
120 | | -// CHECK: sub i64 0, %{{.*}} |
121 | | -// CHECK: and i64 %{{.*}}, %{{.*}} |
| 121 | +// X64-LABEL: test__blsi_u64 |
| 122 | +// X64: sub i64 0, %{{.*}} |
| 123 | +// X64: and i64 %{{.*}}, %{{.*}} |
122 | 124 | return __blsi_u64(__X); |
123 | 125 | } |
124 | 126 |
|
125 | 127 | unsigned long long test__blsmsk_u64(unsigned long long __X) { |
126 | | -// CHECK-LABEL: test__blsmsk_u64 |
127 | | -// CHECK: sub i64 %{{.*}}, 1 |
128 | | -// CHECK: xor i64 %{{.*}}, %{{.*}} |
| 128 | +// X64-LABEL: test__blsmsk_u64 |
| 129 | +// X64: sub i64 %{{.*}}, 1 |
| 130 | +// X64: xor i64 %{{.*}}, %{{.*}} |
129 | 131 | return __blsmsk_u64(__X); |
130 | 132 | } |
131 | 133 |
|
132 | 134 | unsigned long long test__blsr_u64(unsigned long long __X) { |
133 | | -// CHECK-LABEL: test__blsr_u64 |
134 | | -// CHECK: sub i64 %{{.*}}, 1 |
135 | | -// CHECK: and i64 %{{.*}}, %{{.*}} |
| 135 | +// X64-LABEL: test__blsr_u64 |
| 136 | +// X64: sub i64 %{{.*}}, 1 |
| 137 | +// X64: and i64 %{{.*}}, %{{.*}} |
136 | 138 | return __blsr_u64(__X); |
137 | 139 | } |
138 | 140 | #endif |
@@ -186,49 +188,49 @@ unsigned int test_blsr_u32(unsigned int __X) { |
186 | 188 |
|
187 | 189 | #ifdef __x86_64__ |
188 | 190 | unsigned long long test_andn_u64(unsigned long __X, unsigned long __Y) { |
189 | | -// CHECK-LABEL: test_andn_u64 |
190 | | -// CHECK: xor i64 %{{.*}}, -1 |
191 | | -// CHECK: and i64 %{{.*}}, %{{.*}} |
| 191 | +// X64-LABEL: test_andn_u64 |
| 192 | +// X64: xor i64 %{{.*}}, -1 |
| 193 | +// X64: and i64 %{{.*}}, %{{.*}} |
192 | 194 | return _andn_u64(__X, __Y); |
193 | 195 | } |
194 | 196 |
|
195 | 197 | unsigned long long test_bextr_u64(unsigned long __X, unsigned int __Y, |
196 | 198 | unsigned int __Z) { |
197 | | -// CHECK-LABEL: test_bextr_u64 |
198 | | -// CHECK: and i32 %{{.*}}, 255 |
199 | | -// CHECK: and i32 %{{.*}}, 255 |
200 | | -// CHECK: shl i32 %{{.*}}, 8 |
201 | | -// CHECK: or i32 %{{.*}}, %{{.*}} |
202 | | -// CHECK: zext i32 %{{.*}} to i64 |
203 | | -// CHECK: i64 @llvm.x86.bmi.bextr.64(i64 %{{.*}}, i64 %{{.*}}) |
| 199 | +// X64-LABEL: test_bextr_u64 |
| 200 | +// X64: and i32 %{{.*}}, 255 |
| 201 | +// X64: and i32 %{{.*}}, 255 |
| 202 | +// X64: shl i32 %{{.*}}, 8 |
| 203 | +// X64: or i32 %{{.*}}, %{{.*}} |
| 204 | +// X64: zext i32 %{{.*}} to i64 |
| 205 | +// X64: i64 @llvm.x86.bmi.bextr.64(i64 %{{.*}}, i64 %{{.*}}) |
204 | 206 | return _bextr_u64(__X, __Y, __Z); |
205 | 207 | } |
206 | 208 |
|
207 | 209 | unsigned long long test_bextr2_u64(unsigned long long __X, |
208 | 210 | unsigned long long __Y) { |
209 | | -// CHECK-LABEL: test_bextr2_u64 |
210 | | -// CHECK: i64 @llvm.x86.bmi.bextr.64(i64 %{{.*}}, i64 %{{.*}}) |
| 211 | +// X64-LABEL: test_bextr2_u64 |
| 212 | +// X64: i64 @llvm.x86.bmi.bextr.64(i64 %{{.*}}, i64 %{{.*}}) |
211 | 213 | return _bextr2_u64(__X, __Y); |
212 | 214 | } |
213 | 215 |
|
214 | 216 | unsigned long long test_blsi_u64(unsigned long long __X) { |
215 | | -// CHECK-LABEL: test_blsi_u64 |
216 | | -// CHECK: sub i64 0, %{{.*}} |
217 | | -// CHECK: and i64 %{{.*}}, %{{.*}} |
| 217 | +// X64-LABEL: test_blsi_u64 |
| 218 | +// X64: sub i64 0, %{{.*}} |
| 219 | +// X64: and i64 %{{.*}}, %{{.*}} |
218 | 220 | return _blsi_u64(__X); |
219 | 221 | } |
220 | 222 |
|
221 | 223 | unsigned long long test_blsmsk_u64(unsigned long long __X) { |
222 | | -// CHECK-LABEL: test_blsmsk_u64 |
223 | | -// CHECK: sub i64 %{{.*}}, 1 |
224 | | -// CHECK: xor i64 %{{.*}}, %{{.*}} |
| 224 | +// X64-LABEL: test_blsmsk_u64 |
| 225 | +// X64: sub i64 %{{.*}}, 1 |
| 226 | +// X64: xor i64 %{{.*}}, %{{.*}} |
225 | 227 | return _blsmsk_u64(__X); |
226 | 228 | } |
227 | 229 |
|
228 | 230 | unsigned long long test_blsr_u64(unsigned long long __X) { |
229 | | -// CHECK-LABEL: test_blsr_u64 |
230 | | -// CHECK: sub i64 %{{.*}}, 1 |
231 | | -// CHECK: and i64 %{{.*}}, %{{.*}} |
| 231 | +// X64-LABEL: test_blsr_u64 |
| 232 | +// X64: sub i64 %{{.*}}, 1 |
| 233 | +// X64: and i64 %{{.*}}, %{{.*}} |
232 | 234 | return _blsr_u64(__X); |
233 | 235 | } |
234 | 236 | #endif |
|
0 commit comments