@@ -56,7 +56,7 @@ unsigned char test_BitScanForward(unsigned LONG *Index, unsigned LONG Mask) {
5656// CHECK: [[RESULT:%[a-z0-9._]+]] = phi i8 [ 0, %[[ISZERO_LABEL:[a-z0-9._]+]] ], [ 1, %[[ISNOTZERO_LABEL]] ]
5757// CHECK: ret i8 [[RESULT]]
5858// CHECK: [[ISNOTZERO_LABEL]]:
59- // CHECK: [[INDEX:%[0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %Mask, i1 true)
59+ // CHECK: [[INDEX:%[0-9]+]] = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %Mask, i1 true)
6060// CHECK: store i32 [[INDEX]], ptr %Index, align 4
6161// CHECK: br label %[[END_LABEL]]
6262
@@ -70,7 +70,7 @@ unsigned char test_BitScanReverse(unsigned LONG *Index, unsigned LONG Mask) {
7070// CHECK: [[RESULT:%[a-z0-9._]+]] = phi i8 [ 0, %[[ISZERO_LABEL:[a-z0-9._]+]] ], [ 1, %[[ISNOTZERO_LABEL]] ]
7171// CHECK: ret i8 [[RESULT]]
7272// CHECK: [[ISNOTZERO_LABEL]]:
73- // CHECK: [[REVINDEX:%[0-9]+]] = tail call i32 @llvm.ctlz.i32(i32 %Mask, i1 true)
73+ // CHECK: [[REVINDEX:%[0-9]+]] = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %Mask, i1 true)
7474// CHECK: [[INDEX:%[0-9]+]] = xor i32 [[REVINDEX]], 31
7575// CHECK: store i32 [[INDEX]], ptr %Index, align 4
7676// CHECK: br label %[[END_LABEL]]
@@ -86,7 +86,7 @@ unsigned char test_BitScanForward64(unsigned LONG *Index, unsigned __int64 Mask)
8686// CHECK: [[RESULT:%[a-z0-9._]+]] = phi i8 [ 0, %[[ISZERO_LABEL:[a-z0-9._]+]] ], [ 1, %[[ISNOTZERO_LABEL]] ]
8787// CHECK: ret i8 [[RESULT]]
8888// CHECK: [[ISNOTZERO_LABEL]]:
89- // CHECK: [[INDEX:%[0-9]+]] = tail call i64 @llvm.cttz.i64(i64 %Mask, i1 true)
89+ // CHECK: [[INDEX:%[0-9]+]] = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %Mask, i1 true)
9090// CHECK: [[TRUNC_INDEX:%[0-9]+]] = trunc nuw nsw i64 [[INDEX]] to i32
9191// CHECK: store i32 [[TRUNC_INDEX]], ptr %Index, align 4
9292// CHECK: br label %[[END_LABEL]]
@@ -101,7 +101,7 @@ unsigned char test_BitScanReverse64(unsigned LONG *Index, unsigned __int64 Mask)
101101// CHECK: [[RESULT:%[a-z0-9._]+]] = phi i8 [ 0, %[[ISZERO_LABEL:[a-z0-9._]+]] ], [ 1, %[[ISNOTZERO_LABEL]] ]
102102// CHECK: ret i8 [[RESULT]]
103103// CHECK: [[ISNOTZERO_LABEL]]:
104- // CHECK: [[REVINDEX:%[0-9]+]] = tail call i64 @llvm.ctlz.i64(i64 %Mask, i1 true)
104+ // CHECK: [[REVINDEX:%[0-9]+]] = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %Mask, i1 true)
105105// CHECK: [[TRUNC_REVINDEX:%[0-9]+]] = trunc nuw nsw i64 [[REVINDEX]] to i32
106106// CHECK: [[INDEX:%[0-9]+]] = xor i32 [[TRUNC_REVINDEX]], 63
107107// CHECK: store i32 [[INDEX]], ptr %Index, align 4
@@ -187,47 +187,47 @@ unsigned short test__lzcnt16(unsigned short x) {
187187 return __lzcnt16 (x );
188188}
189189// CHECK: i16 @test__lzcnt16
190- // CHECK: [[RESULT:%[0-9]+]] = tail call i16 @llvm.ctlz.i16(i16 %x, i1 false)
190+ // CHECK: [[RESULT:%[0-9]+]] = tail call range(i16 0, 17) i16 @llvm.ctlz.i16(i16 %x, i1 false)
191191// CHECK: ret i16 [[RESULT]]
192192// CHECK: }
193193
194194unsigned int test__lzcnt (unsigned int x ) {
195195 return __lzcnt (x );
196196}
197197// CHECK: i32 @test__lzcnt
198- // CHECK: [[RESULT:%[0-9]+]] = tail call i32 @llvm.ctlz.i32(i32 %x, i1 false)
198+ // CHECK: [[RESULT:%[0-9]+]] = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %x, i1 false)
199199// CHECK: ret i32 [[RESULT]]
200200// CHECK: }
201201
202202unsigned __int64 test__lzcnt64 (unsigned __int64 x ) {
203203 return __lzcnt64 (x );
204204}
205205// CHECK: i64 @test__lzcnt64
206- // CHECK: [[RESULT:%[0-9]+]] = tail call i64 @llvm.ctlz.i64(i64 %x, i1 false)
206+ // CHECK: [[RESULT:%[0-9]+]] = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %x, i1 false)
207207// CHECK: ret i64 [[RESULT]]
208208// CHECK: }
209209
210210unsigned short test__popcnt16 (unsigned short x ) {
211211 return __popcnt16 (x );
212212}
213213// CHECK: i16 @test__popcnt16
214- // CHECK: [[RESULT:%[0-9]+]] = tail call i16 @llvm.ctpop.i16(i16 %x)
214+ // CHECK: [[RESULT:%[0-9]+]] = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %x)
215215// CHECK: ret i16 [[RESULT]]
216216// CHECK: }
217217
218218unsigned int test__popcnt (unsigned int x ) {
219219 return __popcnt (x );
220220}
221221// CHECK: i32 @test__popcnt
222- // CHECK: [[RESULT:%[0-9]+]] = tail call i32 @llvm.ctpop.i32(i32 %x)
222+ // CHECK: [[RESULT:%[0-9]+]] = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %x)
223223// CHECK: ret i32 [[RESULT]]
224224// CHECK: }
225225
226226unsigned __int64 test__popcnt64 (unsigned __int64 x ) {
227227 return __popcnt64 (x );
228228}
229229// CHECK: i64 @test__popcnt64
230- // CHECK: [[RESULT:%[0-9]+]] = tail call i64 @llvm.ctpop.i64(i64 %x)
230+ // CHECK: [[RESULT:%[0-9]+]] = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %x)
231231// CHECK: ret i64 [[RESULT]]
232232// CHECK: }
233233
0 commit comments