diff options
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/Transforms/InstSimplify/and-icmps-same-ops.ll | 26 | ||||
| -rw-r--r-- | llvm/test/Transforms/InstSimplify/or-icmps-same-ops.ll | 26 |
2 files changed, 52 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstSimplify/and-icmps-same-ops.ll b/llvm/test/Transforms/InstSimplify/and-icmps-same-ops.ll index 8a665c33997..4da79388f72 100644 --- a/llvm/test/Transforms/InstSimplify/and-icmps-same-ops.ll +++ b/llvm/test/Transforms/InstSimplify/and-icmps-same-ops.ll @@ -1211,3 +1211,29 @@ define <2 x i1> @ult_ule_vec(<2 x i8> %a, <2 x i8> %b) { ret <2 x i1> %and } +define i1 @ult_uge_swap(i8 %a, i8 %b) { +; CHECK-LABEL: @ult_uge_swap( +; CHECK-NEXT: [[CMP1:%.*]] = icmp ult i8 %a, %b +; CHECK-NEXT: [[CMP2:%.*]] = icmp uge i8 %b, %a +; CHECK-NEXT: [[AND:%.*]] = and i1 [[CMP1]], [[CMP2]] +; CHECK-NEXT: ret i1 [[AND]] +; + %cmp1 = icmp ult i8 %a, %b + %cmp2 = icmp uge i8 %b, %a + %and = and i1 %cmp1, %cmp2 + ret i1 %and +} + +define i1 @ult_ult_swap(i8 %a, i8 %b) { +; CHECK-LABEL: @ult_ult_swap( +; CHECK-NEXT: [[CMP1:%.*]] = icmp ult i8 %a, %b +; CHECK-NEXT: [[CMP2:%.*]] = icmp ult i8 %b, %a +; CHECK-NEXT: [[AND:%.*]] = and i1 [[CMP1]], [[CMP2]] +; CHECK-NEXT: ret i1 [[AND]] +; + %cmp1 = icmp ult i8 %a, %b + %cmp2 = icmp ult i8 %b, %a + %and = and i1 %cmp1, %cmp2 + ret i1 %and +} + diff --git a/llvm/test/Transforms/InstSimplify/or-icmps-same-ops.ll b/llvm/test/Transforms/InstSimplify/or-icmps-same-ops.ll index cee7fc3c649..326b1e158c0 100644 --- a/llvm/test/Transforms/InstSimplify/or-icmps-same-ops.ll +++ b/llvm/test/Transforms/InstSimplify/or-icmps-same-ops.ll @@ -1211,3 +1211,29 @@ define <2 x i1> @ult_ule_vec(<2 x i8> %a, <2 x i8> %b) { ret <2 x i1> %or } +define i1 @ult_ne_swap(i8 %a, i8 %b) { +; CHECK-LABEL: @ult_ne_swap( +; CHECK-NEXT: [[CMP1:%.*]] = icmp ult i8 %a, %b +; CHECK-NEXT: [[CMP2:%.*]] = icmp ne i8 %b, %a +; CHECK-NEXT: [[OR:%.*]] = or i1 [[CMP1]], [[CMP2]] +; CHECK-NEXT: ret i1 [[OR]] +; + %cmp1 = icmp ult i8 %a, %b + %cmp2 = icmp ne i8 %b, %a + %or = or i1 %cmp1, %cmp2 + ret i1 %or +} + +define i1 @ult_ule_swap(i8 %a, i8 %b) { +; CHECK-LABEL: @ult_ule_swap( +; CHECK-NEXT: [[CMP1:%.*]] = icmp ult i8 %a, %b +; CHECK-NEXT: [[CMP2:%.*]] = icmp uge i8 %b, %a +; CHECK-NEXT: [[OR:%.*]] = or i1 [[CMP1]], [[CMP2]] +; CHECK-NEXT: ret i1 [[OR]] +; + %cmp1 = icmp ult i8 %a, %b + %cmp2 = icmp uge i8 %b, %a + %or = or i1 %cmp1, %cmp2 + ret i1 %or +} + |

