| /llvm-project-15.0.7/llvm/test/Transforms/InstCombine/ |
| H A D | ssubo.ll | 14 %overflow = extractvalue { i64, i1 } %res, 1 15 ret i1 %overflow 23 %overflow = extractvalue { i8, i1 } %res, 1 24 ret i1 %overflow 34 ret i1 %overflow 44 ret i1 %overflow 54 ret i1 %overflow 64 ret i1 %overflow 75 ret i1 %overflow 85 ret i1 %overflow [all …]
|
| H A D | saddo.ll | 14 %overflow = extractvalue { i64, i1 } %res, 1 15 ret i1 %overflow 23 %overflow = extractvalue { i8, i1 } %res, 1 24 ret i1 %overflow 34 ret i1 %overflow 44 ret i1 %overflow 54 ret i1 %overflow 64 ret i1 %overflow 74 ret i1 %overflow 84 ret i1 %overflow [all …]
|
| H A D | smulo.ll | 14 %overflow = extractvalue { i64, i1 } %res, 1 15 ret i1 %overflow 23 %overflow = extractvalue { i8, i1 } %res, 1 24 ret i1 %overflow 33 ret i1 %overflow 44 ret i1 %overflow 55 ret i1 %overflow 66 ret i1 %overflow 78 ret i1 %overflow 88 ret i1 %overflow [all …]
|
| H A D | uaddo2.ll | 14 %overflow = extractvalue { i64, i1 } %res, 1 15 ret i1 %overflow 23 %overflow = extractvalue { i8, i1 } %res, 1 24 ret i1 %overflow 34 ret i1 %overflow 44 ret i1 %overflow 54 ret i1 %overflow 64 ret i1 %overflow 75 ret i1 %overflow 85 ret i1 %overflow [all …]
|
| H A D | umulo.ll | 14 %overflow = extractvalue { i64, i1 } %res, 1 15 ret i1 %overflow 23 %overflow = extractvalue { i8, i1 } %res, 1 24 ret i1 %overflow 33 ret i1 %overflow 43 ret i1 %overflow 53 ret i1 %overflow 63 ret i1 %overflow 74 ret i1 %overflow 84 ret i1 %overflow [all …]
|
| H A D | usubo.ll | 14 %overflow = extractvalue { i64, i1 } %res, 1 15 ret i1 %overflow 23 %overflow = extractvalue { i8, i1 } %res, 1 24 ret i1 %overflow 34 ret i1 %overflow 44 ret i1 %overflow 54 ret i1 %overflow 64 ret i1 %overflow 75 ret i1 %overflow 85 ret i1 %overflow [all …]
|
| H A D | umul-sign-check.ll | 28 %overflow.1 = or i1 %overflow, %cmp 47 %overflow.1 = select i1 %overflow, i1 true, i1 %cmp 67 %overflow.1 = or i1 %cmp, %overflow 87 %overflow.1 = select i1 %cmp, i1 true, i1 %overflow 107 %overflow.1 = or i1 %overflow, %cmp 128 %overflow.1 = select i1 %overflow, i1 true, i1 %cmp 150 %overflow.1 = or i1 %overflow, %cmp 191 %overflow.1 = or i1 %overflow, %cmp 239 %overflow.1 = or i1 %overflow, %cmp 288 %overflow.1 = or i1 %overflow, %cmp [all …]
|
| H A D | ssub-with-overflow.ll | 4 declare { <2 x i32>, <2 x i1> } @llvm.ssub.with.overflow.v2i32(<2 x i32>, <2 x i32>) 6 declare { <2 x i8>, <2 x i1> } @llvm.ssub.with.overflow.v2i8(<2 x i8>, <2 x i8>) 8 declare { i32, i1 } @llvm.ssub.with.overflow.i32(i32, i32) 10 declare { i8, i1 } @llvm.ssub.with.overflow.i8(i8, i8) 18 %b = tail call { i32, i1 } @llvm.ssub.with.overflow.i32(i32 %a, i32 13) 29 %b = tail call { i32, i1 } @llvm.ssub.with.overflow.i32(i32 %a, i32 -7) 39 %b = tail call { i8, i1 } @llvm.ssub.with.overflow.i8(i8 %a, i8 28) 50 %b = tail call { i8, i1 } @llvm.ssub.with.overflow.i8(i8 %a, i8 29) 92 %b = tail call { i32, i1 } @llvm.ssub.with.overflow.i32(i32 %a, i32 30) 103 %b = tail call { i32, i1 } @llvm.ssub.with.overflow.i32(i32 %a, i32 30) [all …]
|
| H A D | overflow-mul.ll | 23 %overflow = icmp ugt i64 %mul64, 4294967295 25 %retval = zext i1 %overflow to i32 40 %retval = zext i1 %overflow to i32 71 ; CHECK-NOT: umul.with.overflow.i32 89 %retval = zext i1 %overflow to i32 105 %retval = zext i1 %overflow to i32 137 %overflow = icmp ne i64 %mul64, %part64 139 %retval = zext i1 %overflow to i32 155 %retval = zext i1 %overflow to i32 172 %retval = zext i1 %overflow to i32 [all …]
|
| H A D | sadd-with-overflow.ll | 4 declare { <2 x i32>, <2 x i1> } @llvm.sadd.with.overflow.v2i32(<2 x i32>, <2 x i32>) 6 declare { i32, i1 } @llvm.sadd.with.overflow.i32(i32, i32) 8 declare { i8, i1 } @llvm.sadd.with.overflow.i8(i8, i8) 16 %b = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %a, i32 13) 27 %b = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %a, i32 -7) 37 %b = tail call { i8, i1 } @llvm.sadd.with.overflow.i8(i8 %a, i8 27) 48 %b = tail call { i8, i1 } @llvm.sadd.with.overflow.i8(i8 %a, i8 28) 90 %b = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %a, i32 30) 101 %b = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %a, i32 30) 112 %b = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 30, i32 %a) [all …]
|
| H A D | uadd-with-overflow.ll | 4 declare { <2 x i32>, <2 x i1> } @llvm.uadd.with.overflow.v2i32(<2 x i32>, <2 x i32>) 6 declare { <2 x i8>, <2 x i1> } @llvm.uadd.with.overflow.v2i8(<2 x i8>, <2 x i8>) 8 declare { i32, i1 } @llvm.uadd.with.overflow.i32(i32, i32) 10 declare { i8, i1 } @llvm.uadd.with.overflow.i8(i8, i8) 18 %b = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %a, i32 13) 24 ; CHECK-NEXT: [[TMP1:%.*]] = call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 [[X:%.*]], i8 -1) 28 %b = tail call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 %a, i8 55) 38 %b = tail call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 %a, i8 56) 102 %b = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %a, i32 30) 113 %b = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %a, i32 30) [all …]
|
| H A D | with_overflow.ll | 4 declare { i8, i1 } @llvm.uadd.with.overflow.i8(i8, i8) nounwind readnone 5 declare { i8, i1 } @llvm.sadd.with.overflow.i8(i8, i8) nounwind readnone 6 declare { i8, i1 } @llvm.usub.with.overflow.i8(i8, i8) nounwind readnone 7 declare { i8, i1 } @llvm.ssub.with.overflow.i8(i8, i8) nounwind readnone 22 %x = call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 %A, i8 %B) 78 %x = call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 0, i8 %A) 90 %x = call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 %A, i8 -4) 100 %x = call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 %A, i8 %B) 535 ; Always overflow tests 616 ; Always overflow [all …]
|
| /llvm-project-15.0.7/llvm/test/Analysis/CostModel/AArch64/ |
| H A D | arith-overflow.ll | 5 declare {i64, i1} @llvm.sadd.with.overflow.i64(i64, i64) 10 declare {i32, i1} @llvm.sadd.with.overflow.i32(i32, i32) 15 declare {i16, i1} @llvm.sadd.with.overflow.i16(i16, i16) 20 declare {i8, i1} @llvm.sadd.with.overflow.i8(i8, i8) 79 %I8 = call {i8, i1} @llvm.sadd.with.overflow.i8(i8 undef, i8 undef) 87 declare {i64, i1} @llvm.uadd.with.overflow.i64(i64, i64) 102 declare {i8, i1} @llvm.uadd.with.overflow.i8(i8, i8) 184 declare {i8, i1} @llvm.ssub.with.overflow.i8(i8, i8) 266 declare {i8, i1} @llvm.usub.with.overflow.i8(i8, i8) 348 declare {i8, i1} @llvm.smul.with.overflow.i8(i8, i8) [all …]
|
| /llvm-project-15.0.7/llvm/test/Analysis/CostModel/ARM/ |
| H A D | arith-overflow.ll | 11 declare {i64, i1} @llvm.sadd.with.overflow.i64(i64, i64) 16 declare {i32, i1} @llvm.sadd.with.overflow.i32(i32, i32) 21 declare {i16, i1} @llvm.sadd.with.overflow.i16(i16, i16) 26 declare {i8, i1} @llvm.sadd.with.overflow.i8(i8, i8) 161 %I8 = call {i8, i1} @llvm.sadd.with.overflow.i8(i8 undef, i8 undef) 169 declare {i64, i1} @llvm.uadd.with.overflow.i64(i64, i64) 184 declare {i8, i1} @llvm.uadd.with.overflow.i8(i8, i8) 342 declare {i8, i1} @llvm.ssub.with.overflow.i8(i8, i8) 500 declare {i8, i1} @llvm.usub.with.overflow.i8(i8, i8) 658 declare {i8, i1} @llvm.smul.with.overflow.i8(i8, i8) [all …]
|
| /llvm-project-15.0.7/llvm/test/Analysis/CostModel/X86/ |
| H A D | arith-overflow.ll | 15 ; sadd.with.overflow 18 declare {i64, i1} @llvm.sadd.with.overflow.i64(i64, i64) 23 declare {i32, i1} @llvm.sadd.with.overflow.i32(i32, i32) 28 declare {i16, i1} @llvm.sadd.with.overflow.i16(i16, i16) 33 declare {i8, i1} @llvm.sadd.with.overflow.i8(i8, i8) 253 ; uadd.with.overflow 271 declare {i8, i1} @llvm.uadd.with.overflow.i8(i8, i8) 491 ; ssub.with.overflow 729 ; usub.with.overflow 967 ; smul.with.overflow [all …]
|
| /llvm-project-15.0.7/llvm/test/Transforms/InstSimplify/ConstProp/ |
| H A D | overflow-ops.ll | 4 declare {i8, i1} @llvm.uadd.with.overflow.i8(i8, i8) 5 declare {i8, i1} @llvm.usub.with.overflow.i8(i8, i8) 6 declare {i8, i1} @llvm.umul.with.overflow.i8(i8, i8) 8 declare {i8, i1} @llvm.sadd.with.overflow.i8(i8, i8) 9 declare {i8, i1} @llvm.ssub.with.overflow.i8(i8, i8) 10 declare {i8, i1} @llvm.smul.with.overflow.i8(i8, i8) 20 %t = call {i8, i1} @llvm.uadd.with.overflow.i8(i8 42, i8 100) 28 %t = call {i8, i1} @llvm.uadd.with.overflow.i8(i8 142, i8 120) 48 %t = call {i8, i1} @llvm.usub.with.overflow.i8(i8 4, i8 2) 56 %t = call {i8, i1} @llvm.usub.with.overflow.i8(i8 4, i8 6) [all …]
|
| /llvm-project-15.0.7/llvm/test/CodeGen/Generic/ |
| H A D | overflow.ll | 2 ; Verify codegen's don't crash on overflow intrinsics. 8 %sadd = tail call { i8, i1 } @llvm.sadd.with.overflow.i8(i8 %a, i8 %b) 15 declare { i8, i1 } @llvm.sadd.with.overflow.i8(i8, i8) nounwind readnone 19 %sadd = tail call { i16, i1 } @llvm.sadd.with.overflow.i16(i16 %a, i16 %b) 26 declare { i16, i1 } @llvm.sadd.with.overflow.i16(i16, i16) nounwind readnone 30 %sadd = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %a, i32 %b) 44 %uadd = tail call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 %a, i8 %b) 51 declare { i8, i1 } @llvm.uadd.with.overflow.i8(i8, i8) nounwind readnone 81 %ssub = tail call { i8, i1 } @llvm.ssub.with.overflow.i8(i8 %a, i8 %b) 88 declare { i8, i1 } @llvm.ssub.with.overflow.i8(i8, i8) nounwind readnone [all …]
|
| /llvm-project-15.0.7/llvm/test/tools/llvm-profdata/ |
| H A D | overflow-instr.test | 1 Tests for overflow when merging instrumented profiles. 3 1- Merge profile having maximum counts with itself and verify overflow detected and saturation occu… 4 RUN: llvm-profdata merge -instr %p/Inputs/overflow-instr.proftext %p/Inputs/overflow-instr.proftext… 6 MERGE_OVERFLOW: {{.*}}.proftext: overflow: counter overflow 10 2- Merge profile having maximum counts by itself and verify no overflow 11 RUN: llvm-profdata merge -instr %p/Inputs/overflow-instr.proftext -o %t.out 2>&1 | FileCheck %s -ch… 13 MERGE_NO_OVERFLOW-NOT: {{.*}}.proftext: overflow: counter overflow
|
| /llvm-project-15.0.7/llvm/test/CodeGen/ARM/ |
| H A D | unschedule-first-call.ll | 22 %15 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %14, i64 1) 27 %20 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %18, i64 %19) 29 %22 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %21, i64 0) 33 %26 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %25, i64 0) 43 %36 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %35, i64 1) 50 %43 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %42, i64 0) 55 %48 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %47, i64 0) 78 %71 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %70, i64 0) 123 declare { i64, i1 } @llvm.smul.with.overflow.i64(i64, i64) #1 126 declare { i64, i1 } @llvm.sadd.with.overflow.i64(i64, i64) #1 [all …]
|
| /llvm-project-15.0.7/llvm/test/CodeGen/X86/ |
| H A D | overflow-intrinsic-setcc-fold.ll | 11 %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %v1, i32 %v2) 24 %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %v1, i64 %v2) 37 %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %v1, i32 %v2) 50 %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %v1, i64 %v2) 63 %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %v1, i32 %v2) 76 %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %v1, i64 %v2) 89 %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %v1, i32 %v2) 102 %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %v1, i64 %v2) 115 %t = call {i32, i1} @llvm.smul.with.overflow.i32(i32 %v1, i32 %v2) 128 %t = call {i64, i1} @llvm.smul.with.overflow.i64(i64 %v1, i64 %v2) [all …]
|
| /llvm-project-15.0.7/llvm/test/Transforms/GVN/ |
| H A D | 2011-07-07-MatchIntrinsicExtract.ll | 8 %uadd = tail call %0 @llvm.uadd.with.overflow.i64(i64 %a, i64 %b) 20 %usub = tail call %0 @llvm.usub.with.overflow.i64(i64 %a, i64 %b) 32 %umul = tail call %0 @llvm.umul.with.overflow.i64(i64 %a, i64 %b) 44 %sadd = tail call %0 @llvm.sadd.with.overflow.i64(i64 %a, i64 %b) 56 %ssub = tail call %0 @llvm.ssub.with.overflow.i64(i64 %a, i64 %b) 68 %smul = tail call %0 @llvm.smul.with.overflow.i64(i64 %a, i64 %b) 79 declare %0 @llvm.uadd.with.overflow.i64(i64, i64) nounwind readnone 80 declare %0 @llvm.usub.with.overflow.i64(i64, i64) nounwind readnone 81 declare %0 @llvm.umul.with.overflow.i64(i64, i64) nounwind readnone 82 declare %0 @llvm.sadd.with.overflow.i64(i64, i64) nounwind readnone [all …]
|
| /llvm-project-15.0.7/llvm/test/Transforms/CorrelatedValuePropagation/ |
| H A D | overflow_predicate.ll | 51 ; CHECK: overflow: 65 overflow: 115 ; CHECK: overflow: 129 overflow: 179 ; CHECK: overflow: 193 overflow: 243 ; CHECK: overflow: 257 overflow: 321 overflow: 419 overflow: [all …]
|
| /llvm-project-15.0.7/llvm/test/Transforms/NewGVN/ |
| H A D | 2011-07-07-MatchIntrinsicExtract.ll | 8 %uadd = tail call %0 @llvm.uadd.with.overflow.i64(i64 %a, i64 %b) 21 %usub = tail call %0 @llvm.usub.with.overflow.i64(i64 %a, i64 %b) 34 %umul = tail call %0 @llvm.umul.with.overflow.i64(i64 %a, i64 %b) 47 %sadd = tail call %0 @llvm.sadd.with.overflow.i64(i64 %a, i64 %b) 60 %ssub = tail call %0 @llvm.ssub.with.overflow.i64(i64 %a, i64 %b) 73 %smul = tail call %0 @llvm.smul.with.overflow.i64(i64 %a, i64 %b) 85 declare %0 @llvm.uadd.with.overflow.i64(i64, i64) nounwind readnone 86 declare %0 @llvm.usub.with.overflow.i64(i64, i64) nounwind readnone 87 declare %0 @llvm.umul.with.overflow.i64(i64, i64) nounwind readnone 88 declare %0 @llvm.sadd.with.overflow.i64(i64, i64) nounwind readnone [all …]
|
| /llvm-project-15.0.7/compiler-rt/lib/ubsan/ |
| H A D | ubsan_checks.inc | 23 UBSAN_CHECK(NullptrWithOffset, "nullptr-with-offset", "pointer-overflow") 25 "pointer-overflow") 27 "pointer-overflow") 28 UBSAN_CHECK(PointerOverflow, "pointer-overflow", "pointer-overflow") 32 UBSAN_CHECK(SignedIntegerOverflow, "signed-integer-overflow", 33 "signed-integer-overflow") 34 UBSAN_CHECK(UnsignedIntegerOverflow, "unsigned-integer-overflow", 35 "unsigned-integer-overflow") 59 UBSAN_CHECK(FloatCastOverflow, "float-cast-overflow", "float-cast-overflow")
|
| /llvm-project-15.0.7/libcxx/src/filesystem/ |
| H A D | int128_builtins.cpp | 22 __int128_t __muloti4(__int128_t a, __int128_t b, int* overflow) { in __muloti4() argument 26 *overflow = 0; in __muloti4() 30 *overflow = 1; in __muloti4() 35 *overflow = 1; in __muloti4() 46 *overflow = 1; in __muloti4() 49 *overflow = 1; in __muloti4()
|