From 027c469158d43d2b2b7ba3e758e81017e5ef6da9 Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Mon, 6 Jun 2016 16:03:06 +0000 Subject: [PATCH] regenerate checks llvm-svn: 271904 --- ...004-11-27-SetCCForCastLargerAndConstant.ll | 269 +++++++++++------- 1 file changed, 159 insertions(+), 110 deletions(-) diff --git a/llvm/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll b/llvm/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll index 6672b6c6d4e5..34dc65f4b703 100644 --- a/llvm/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll +++ b/llvm/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll @@ -1,6 +1,7 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; This test case tests the InstructionCombining optimization that ; reduces things like: -; %Y = sext i8 %X to i32 +; %Y = sext i8 %X to i32 ; %C = icmp ult i32 %Y, 1024 ; to ; %C = i1 true @@ -10,183 +11,231 @@ ; constant value and the range of the casted value. ; ; RUN: opt < %s -instcombine -S | FileCheck %s -; END. + define i1 @lt_signed_to_large_unsigned(i8 %SB) { - %Y = sext i8 %SB to i32 ; [#uses=1] - %C = icmp ult i32 %Y, 1024 ; [#uses=1] - ret i1 %C -; CHECK: %C1 = icmp sgt i8 %SB, -1 -; CHECK: ret i1 %C1 +; CHECK-LABEL: @lt_signed_to_large_unsigned( +; CHECK-NEXT: [[C1:%.*]] = icmp sgt i8 %SB, -1 +; CHECK-NEXT: ret i1 [[C1]] +; + %Y = sext i8 %SB to i32 + %C = icmp ult i32 %Y, 1024 + ret i1 %C } define i1 @lt_signed_to_large_signed(i8 %SB) { - %Y = sext i8 %SB to i32 ; [#uses=1] - %C = icmp slt i32 %Y, 1024 ; [#uses=1] - ret i1 %C -; CHECK: ret i1 true +; CHECK-LABEL: @lt_signed_to_large_signed( +; CHECK-NEXT: ret i1 true +; + %Y = sext i8 %SB to i32 + %C = icmp slt i32 %Y, 1024 + ret i1 %C } define i1 @lt_signed_to_large_negative(i8 %SB) { - %Y = sext i8 %SB to i32 ; [#uses=1] - %C = icmp slt i32 %Y, -1024 ; [#uses=1] - ret i1 %C -; CHECK: ret i1 false +; CHECK-LABEL: @lt_signed_to_large_negative( +; CHECK-NEXT: ret i1 false +; + %Y = sext i8 %SB to i32 + %C = icmp slt i32 %Y, -1024 + ret i1 %C } define i1 @lt_signed_to_small_unsigned(i8 %SB) { - %Y = sext i8 %SB to i32 - %C = icmp ult i32 %Y, 17 - ret i1 %C -; CHECK: %C = icmp ult i8 %SB, 17 -; CHECK: ret i1 %C +; CHECK-LABEL: @lt_signed_to_small_unsigned( +; CHECK-NEXT: [[C:%.*]] = icmp ult i8 %SB, 17 +; CHECK-NEXT: ret i1 [[C]] +; + %Y = sext i8 %SB to i32 + %C = icmp ult i32 %Y, 17 + ret i1 %C } define i1 @lt_signed_to_small_signed(i8 %SB) { - %Y = sext i8 %SB to i32 ; [#uses=1] - %C = icmp slt i32 %Y, 17 ; [#uses=1] - ret i1 %C -; CHECK: %C = icmp slt i8 %SB, 17 -; CHECK: ret i1 %C +; CHECK-LABEL: @lt_signed_to_small_signed( +; CHECK-NEXT: [[C:%.*]] = icmp slt i8 %SB, 17 +; CHECK-NEXT: ret i1 [[C]] +; + %Y = sext i8 %SB to i32 + %C = icmp slt i32 %Y, 17 + ret i1 %C } define i1 @lt_signed_to_small_negative(i8 %SB) { - %Y = sext i8 %SB to i32 ; [#uses=1] - %C = icmp slt i32 %Y, -17 ; [#uses=1] - ret i1 %C -; CHECK: %C = icmp slt i8 %SB, -17 -; CHECK: ret i1 %C +; CHECK-LABEL: @lt_signed_to_small_negative( +; CHECK-NEXT: [[C:%.*]] = icmp slt i8 %SB, -17 +; CHECK-NEXT: ret i1 [[C]] +; + %Y = sext i8 %SB to i32 + %C = icmp slt i32 %Y, -17 + ret i1 %C } define i1 @lt_unsigned_to_large_unsigned(i8 %SB) { - %Y = zext i8 %SB to i32 ; [#uses=1] - %C = icmp ult i32 %Y, 1024 ; [#uses=1] - ret i1 %C -; CHECK: ret i1 true +; CHECK-LABEL: @lt_unsigned_to_large_unsigned( +; CHECK-NEXT: ret i1 true +; + %Y = zext i8 %SB to i32 + %C = icmp ult i32 %Y, 1024 + ret i1 %C } define i1 @lt_unsigned_to_large_signed(i8 %SB) { - %Y = zext i8 %SB to i32 ; [#uses=1] - %C = icmp slt i32 %Y, 1024 ; [#uses=1] - ret i1 %C -; CHECK: ret i1 true +; CHECK-LABEL: @lt_unsigned_to_large_signed( +; CHECK-NEXT: ret i1 true +; + %Y = zext i8 %SB to i32 + %C = icmp slt i32 %Y, 1024 + ret i1 %C } define i1 @lt_unsigned_to_large_negative(i8 %SB) { - %Y = zext i8 %SB to i32 ; [#uses=1] - %C = icmp slt i32 %Y, -1024 ; [#uses=1] - ret i1 %C -; CHECK: ret i1 false +; CHECK-LABEL: @lt_unsigned_to_large_negative( +; CHECK-NEXT: ret i1 false +; + %Y = zext i8 %SB to i32 + %C = icmp slt i32 %Y, -1024 + ret i1 %C } define i1 @lt_unsigned_to_small_unsigned(i8 %SB) { - %Y = zext i8 %SB to i32 ; [#uses=1] - %C = icmp ult i32 %Y, 17 ; [#uses=1] - ret i1 %C -; CHECK: %C = icmp ult i8 %SB, 17 -; CHECK: ret i1 %C +; CHECK-LABEL: @lt_unsigned_to_small_unsigned( +; CHECK-NEXT: [[C:%.*]] = icmp ult i8 %SB, 17 +; CHECK-NEXT: ret i1 [[C]] +; + %Y = zext i8 %SB to i32 + %C = icmp ult i32 %Y, 17 + ret i1 %C } define i1 @lt_unsigned_to_small_signed(i8 %SB) { - %Y = zext i8 %SB to i32 - %C = icmp slt i32 %Y, 17 - ret i1 %C -; CHECK: %C = icmp ult i8 %SB, 17 -; CHECK: ret i1 %C +; CHECK-LABEL: @lt_unsigned_to_small_signed( +; CHECK-NEXT: [[C:%.*]] = icmp ult i8 %SB, 17 +; CHECK-NEXT: ret i1 [[C]] +; + %Y = zext i8 %SB to i32 + %C = icmp slt i32 %Y, 17 + ret i1 %C } define i1 @lt_unsigned_to_small_negative(i8 %SB) { - %Y = zext i8 %SB to i32 ; [#uses=1] - %C = icmp slt i32 %Y, -17 ; [#uses=1] - ret i1 %C -; CHECK: ret i1 false +; CHECK-LABEL: @lt_unsigned_to_small_negative( +; CHECK-NEXT: ret i1 false +; + %Y = zext i8 %SB to i32 + %C = icmp slt i32 %Y, -17 + ret i1 %C } define i1 @gt_signed_to_large_unsigned(i8 %SB) { - %Y = sext i8 %SB to i32 ; [#uses=1] - %C = icmp ugt i32 %Y, 1024 ; [#uses=1] - ret i1 %C -; CHECK: %C = icmp slt i8 %SB, 0 -; CHECK: ret i1 %C +; CHECK-LABEL: @gt_signed_to_large_unsigned( +; CHECK-NEXT: [[C:%.*]] = icmp slt i8 %SB, 0 +; CHECK-NEXT: ret i1 [[C]] +; + %Y = sext i8 %SB to i32 + %C = icmp ugt i32 %Y, 1024 + ret i1 %C } define i1 @gt_signed_to_large_signed(i8 %SB) { - %Y = sext i8 %SB to i32 ; [#uses=1] - %C = icmp sgt i32 %Y, 1024 ; [#uses=1] - ret i1 %C -; CHECK: ret i1 false +; CHECK-LABEL: @gt_signed_to_large_signed( +; CHECK-NEXT: ret i1 false +; + %Y = sext i8 %SB to i32 + %C = icmp sgt i32 %Y, 1024 + ret i1 %C } define i1 @gt_signed_to_large_negative(i8 %SB) { - %Y = sext i8 %SB to i32 ; [#uses=1] - %C = icmp sgt i32 %Y, -1024 ; [#uses=1] - ret i1 %C -; CHECK: ret i1 true +; CHECK-LABEL: @gt_signed_to_large_negative( +; CHECK-NEXT: ret i1 true +; + %Y = sext i8 %SB to i32 + %C = icmp sgt i32 %Y, -1024 + ret i1 %C } define i1 @gt_signed_to_small_unsigned(i8 %SB) { - %Y = sext i8 %SB to i32 - %C = icmp ugt i32 %Y, 17 - ret i1 %C -; CHECK: %C = icmp ugt i8 %SB, 17 -; CHECK: ret i1 %C +; CHECK-LABEL: @gt_signed_to_small_unsigned( +; CHECK-NEXT: [[C:%.*]] = icmp ugt i8 %SB, 17 +; CHECK-NEXT: ret i1 [[C]] +; + %Y = sext i8 %SB to i32 + %C = icmp ugt i32 %Y, 17 + ret i1 %C } define i1 @gt_signed_to_small_signed(i8 %SB) { - %Y = sext i8 %SB to i32 ; [#uses=1] - %C = icmp sgt i32 %Y, 17 ; [#uses=1] - ret i1 %C -; CHECK: %C = icmp sgt i8 %SB, 17 -; CHECK: ret i1 %C +; CHECK-LABEL: @gt_signed_to_small_signed( +; CHECK-NEXT: [[C:%.*]] = icmp sgt i8 %SB, 17 +; CHECK-NEXT: ret i1 [[C]] +; + %Y = sext i8 %SB to i32 + %C = icmp sgt i32 %Y, 17 + ret i1 %C } define i1 @gt_signed_to_small_negative(i8 %SB) { - %Y = sext i8 %SB to i32 ; [#uses=1] - %C = icmp sgt i32 %Y, -17 ; [#uses=1] - ret i1 %C -; CHECK: %C = icmp sgt i8 %SB, -17 -; CHECK: ret i1 %C +; CHECK-LABEL: @gt_signed_to_small_negative( +; CHECK-NEXT: [[C:%.*]] = icmp sgt i8 %SB, -17 +; CHECK-NEXT: ret i1 [[C]] +; + %Y = sext i8 %SB to i32 + %C = icmp sgt i32 %Y, -17 + ret i1 %C } define i1 @gt_unsigned_to_large_unsigned(i8 %SB) { - %Y = zext i8 %SB to i32 ; [#uses=1] - %C = icmp ugt i32 %Y, 1024 ; [#uses=1] - ret i1 %C -; CHECK: ret i1 false +; CHECK-LABEL: @gt_unsigned_to_large_unsigned( +; CHECK-NEXT: ret i1 false +; + %Y = zext i8 %SB to i32 + %C = icmp ugt i32 %Y, 1024 + ret i1 %C } define i1 @gt_unsigned_to_large_signed(i8 %SB) { - %Y = zext i8 %SB to i32 ; [#uses=1] - %C = icmp sgt i32 %Y, 1024 ; [#uses=1] - ret i1 %C -; CHECK: ret i1 false +; CHECK-LABEL: @gt_unsigned_to_large_signed( +; CHECK-NEXT: ret i1 false +; + %Y = zext i8 %SB to i32 + %C = icmp sgt i32 %Y, 1024 + ret i1 %C } define i1 @gt_unsigned_to_large_negative(i8 %SB) { - %Y = zext i8 %SB to i32 ; [#uses=1] - %C = icmp sgt i32 %Y, -1024 ; [#uses=1] - ret i1 %C -; CHECK: ret i1 true +; CHECK-LABEL: @gt_unsigned_to_large_negative( +; CHECK-NEXT: ret i1 true +; + %Y = zext i8 %SB to i32 + %C = icmp sgt i32 %Y, -1024 + ret i1 %C } define i1 @gt_unsigned_to_small_unsigned(i8 %SB) { - %Y = zext i8 %SB to i32 ; [#uses=1] - %C = icmp ugt i32 %Y, 17 ; [#uses=1] - ret i1 %C -; CHECK: %C = icmp ugt i8 %SB, 17 -; CHECK: ret i1 %C +; CHECK-LABEL: @gt_unsigned_to_small_unsigned( +; CHECK-NEXT: [[C:%.*]] = icmp ugt i8 %SB, 17 +; CHECK-NEXT: ret i1 [[C]] +; + %Y = zext i8 %SB to i32 + %C = icmp ugt i32 %Y, 17 + ret i1 %C } define i1 @gt_unsigned_to_small_signed(i8 %SB) { - %Y = zext i8 %SB to i32 - %C = icmp sgt i32 %Y, 17 - ret i1 %C -; CHECK: %C = icmp ugt i8 %SB, 17 -; CHECK: ret i1 %C +; CHECK-LABEL: @gt_unsigned_to_small_signed( +; CHECK-NEXT: [[C:%.*]] = icmp ugt i8 %SB, 17 +; CHECK-NEXT: ret i1 [[C]] +; + %Y = zext i8 %SB to i32 + %C = icmp sgt i32 %Y, 17 + ret i1 %C } define i1 @gt_unsigned_to_small_negative(i8 %SB) { - %Y = zext i8 %SB to i32 ; [#uses=1] - %C = icmp sgt i32 %Y, -17 ; [#uses=1] - ret i1 %C -; CHECK: ret i1 true +; CHECK-LABEL: @gt_unsigned_to_small_negative( +; CHECK-NEXT: ret i1 true +; + %Y = zext i8 %SB to i32 + %C = icmp sgt i32 %Y, -17 + ret i1 %C }