[NFC][InstCombine] Autogenerate icmp-shr-lt-gt.ll test

llvm-svn: 373799
This commit is contained in:
Roman Lebedev 2019-10-04 22:15:49 +00:00
parent 3c56cc920f
commit 007452532b
1 changed files with 89 additions and 88 deletions

View File

@ -1,8 +1,9 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -instcombine -S | FileCheck %s
define i1 @lshrugt_01_00(i4 %x) {
; CHECK-LABEL: @lshrugt_01_00(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 1
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], 1
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -12,7 +13,7 @@ define i1 @lshrugt_01_00(i4 %x) {
define i1 @lshrugt_01_01(i4 %x) {
; CHECK-LABEL: @lshrugt_01_01(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 3
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], 3
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -22,7 +23,7 @@ define i1 @lshrugt_01_01(i4 %x) {
define i1 @lshrugt_01_02(i4 %x) {
; CHECK-LABEL: @lshrugt_01_02(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 5
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], 5
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -32,7 +33,7 @@ define i1 @lshrugt_01_02(i4 %x) {
define i1 @lshrugt_01_03(i4 %x) {
; CHECK-LABEL: @lshrugt_01_03(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -42,7 +43,7 @@ define i1 @lshrugt_01_03(i4 %x) {
define i1 @lshrugt_01_04(i4 %x) {
; CHECK-LABEL: @lshrugt_01_04(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, -7
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], -7
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -52,7 +53,7 @@ define i1 @lshrugt_01_04(i4 %x) {
define i1 @lshrugt_01_05(i4 %x) {
; CHECK-LABEL: @lshrugt_01_05(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, -5
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], -5
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -62,7 +63,7 @@ define i1 @lshrugt_01_05(i4 %x) {
define i1 @lshrugt_01_06(i4 %x) {
; CHECK-LABEL: @lshrugt_01_06(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, -3
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], -3
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -153,7 +154,7 @@ define i1 @lshrugt_01_15(i4 %x) {
define i1 @lshrugt_02_00(i4 %x) {
; CHECK-LABEL: @lshrugt_02_00(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 3
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], 3
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 2
@ -163,7 +164,7 @@ define i1 @lshrugt_02_00(i4 %x) {
define i1 @lshrugt_02_01(i4 %x) {
; CHECK-LABEL: @lshrugt_02_01(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 2
@ -173,7 +174,7 @@ define i1 @lshrugt_02_01(i4 %x) {
define i1 @lshrugt_02_02(i4 %x) {
; CHECK-LABEL: @lshrugt_02_02(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, -5
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], -5
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 2
@ -300,7 +301,7 @@ define i1 @lshrugt_02_15(i4 %x) {
define i1 @lshrugt_03_00(i4 %x) {
; CHECK-LABEL: @lshrugt_03_00(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 3
@ -454,7 +455,7 @@ define i1 @lshrult_01_00(i4 %x) {
define i1 @lshrult_01_01(i4 %x) {
; CHECK-LABEL: @lshrult_01_01(
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, 2
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 [[X:%.*]], 2
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -464,7 +465,7 @@ define i1 @lshrult_01_01(i4 %x) {
define i1 @lshrult_01_02(i4 %x) {
; CHECK-LABEL: @lshrult_01_02(
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, 4
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 [[X:%.*]], 4
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -474,7 +475,7 @@ define i1 @lshrult_01_02(i4 %x) {
define i1 @lshrult_01_03(i4 %x) {
; CHECK-LABEL: @lshrult_01_03(
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, 6
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 [[X:%.*]], 6
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -484,7 +485,7 @@ define i1 @lshrult_01_03(i4 %x) {
define i1 @lshrult_01_04(i4 %x) {
; CHECK-LABEL: @lshrult_01_04(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -1
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -494,7 +495,7 @@ define i1 @lshrult_01_04(i4 %x) {
define i1 @lshrult_01_05(i4 %x) {
; CHECK-LABEL: @lshrult_01_05(
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, -6
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 [[X:%.*]], -6
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -504,7 +505,7 @@ define i1 @lshrult_01_05(i4 %x) {
define i1 @lshrult_01_06(i4 %x) {
; CHECK-LABEL: @lshrult_01_06(
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, -4
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 [[X:%.*]], -4
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -514,7 +515,7 @@ define i1 @lshrult_01_06(i4 %x) {
define i1 @lshrult_01_07(i4 %x) {
; CHECK-LABEL: @lshrult_01_07(
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, -2
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 [[X:%.*]], -2
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 1
@ -605,7 +606,7 @@ define i1 @lshrult_02_00(i4 %x) {
define i1 @lshrult_02_01(i4 %x) {
; CHECK-LABEL: @lshrult_02_01(
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, 4
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 [[X:%.*]], 4
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 2
@ -615,7 +616,7 @@ define i1 @lshrult_02_01(i4 %x) {
define i1 @lshrult_02_02(i4 %x) {
; CHECK-LABEL: @lshrult_02_02(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -1
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 2
@ -625,7 +626,7 @@ define i1 @lshrult_02_02(i4 %x) {
define i1 @lshrult_02_03(i4 %x) {
; CHECK-LABEL: @lshrult_02_03(
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, -4
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 [[X:%.*]], -4
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 2
@ -752,7 +753,7 @@ define i1 @lshrult_03_00(i4 %x) {
define i1 @lshrult_03_01(i4 %x) {
; CHECK-LABEL: @lshrult_03_01(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -1
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr i4 %x, 3
@ -888,7 +889,7 @@ define i1 @lshrult_03_15(i4 %x) {
define i1 @ashrsgt_01_00(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_00(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 1
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], 1
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -898,7 +899,7 @@ define i1 @ashrsgt_01_00(i4 %x) {
define i1 @ashrsgt_01_01(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_01(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 3
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], 3
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -908,7 +909,7 @@ define i1 @ashrsgt_01_01(i4 %x) {
define i1 @ashrsgt_01_02(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_02(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 5
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], 5
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -999,7 +1000,7 @@ define i1 @ashrsgt_01_11(i4 %x) {
define i1 @ashrsgt_01_12(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_12(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -7
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -7
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -1009,7 +1010,7 @@ define i1 @ashrsgt_01_12(i4 %x) {
define i1 @ashrsgt_01_13(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_13(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -5
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -5
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -1019,7 +1020,7 @@ define i1 @ashrsgt_01_13(i4 %x) {
define i1 @ashrsgt_01_14(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_14(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -3
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -3
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -1029,7 +1030,7 @@ define i1 @ashrsgt_01_14(i4 %x) {
define i1 @ashrsgt_01_15(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_15(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -1
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -1039,7 +1040,7 @@ define i1 @ashrsgt_01_15(i4 %x) {
define i1 @ashrsgt_02_00(i4 %x) {
; CHECK-LABEL: @ashrsgt_02_00(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 3
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], 3
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 2
@ -1166,7 +1167,7 @@ define i1 @ashrsgt_02_13(i4 %x) {
define i1 @ashrsgt_02_14(i4 %x) {
; CHECK-LABEL: @ashrsgt_02_14(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -5
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -5
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 2
@ -1176,7 +1177,7 @@ define i1 @ashrsgt_02_14(i4 %x) {
define i1 @ashrsgt_02_15(i4 %x) {
; CHECK-LABEL: @ashrsgt_02_15(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -1
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 2
@ -1321,7 +1322,7 @@ define i1 @ashrsgt_03_14(i4 %x) {
define i1 @ashrsgt_03_15(i4 %x) {
; CHECK-LABEL: @ashrsgt_03_15(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -1
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 3
@ -1331,7 +1332,7 @@ define i1 @ashrsgt_03_15(i4 %x) {
define i1 @ashrslt_01_00(i4 %x) {
; CHECK-LABEL: @ashrslt_01_00(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -1341,7 +1342,7 @@ define i1 @ashrslt_01_00(i4 %x) {
define i1 @ashrslt_01_01(i4 %x) {
; CHECK-LABEL: @ashrslt_01_01(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 2
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 2
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -1351,7 +1352,7 @@ define i1 @ashrslt_01_01(i4 %x) {
define i1 @ashrslt_01_02(i4 %x) {
; CHECK-LABEL: @ashrslt_01_02(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 4
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 4
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -1361,7 +1362,7 @@ define i1 @ashrslt_01_02(i4 %x) {
define i1 @ashrslt_01_03(i4 %x) {
; CHECK-LABEL: @ashrslt_01_03(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 6
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 6
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -1452,7 +1453,7 @@ define i1 @ashrslt_01_12(i4 %x) {
define i1 @ashrslt_01_13(i4 %x) {
; CHECK-LABEL: @ashrslt_01_13(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -6
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], -6
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -1462,7 +1463,7 @@ define i1 @ashrslt_01_13(i4 %x) {
define i1 @ashrslt_01_14(i4 %x) {
; CHECK-LABEL: @ashrslt_01_14(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -4
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], -4
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -1472,7 +1473,7 @@ define i1 @ashrslt_01_14(i4 %x) {
define i1 @ashrslt_01_15(i4 %x) {
; CHECK-LABEL: @ashrslt_01_15(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -2
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], -2
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 1
@ -1482,7 +1483,7 @@ define i1 @ashrslt_01_15(i4 %x) {
define i1 @ashrslt_02_00(i4 %x) {
; CHECK-LABEL: @ashrslt_02_00(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 2
@ -1492,7 +1493,7 @@ define i1 @ashrslt_02_00(i4 %x) {
define i1 @ashrslt_02_01(i4 %x) {
; CHECK-LABEL: @ashrslt_02_01(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 4
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 4
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 2
@ -1619,7 +1620,7 @@ define i1 @ashrslt_02_14(i4 %x) {
define i1 @ashrslt_02_15(i4 %x) {
; CHECK-LABEL: @ashrslt_02_15(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -4
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], -4
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 2
@ -1629,7 +1630,7 @@ define i1 @ashrslt_02_15(i4 %x) {
define i1 @ashrslt_03_00(i4 %x) {
; CHECK-LABEL: @ashrslt_03_00(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr i4 %x, 3
@ -1774,7 +1775,7 @@ define i1 @ashrslt_03_15(i4 %x) {
define i1 @lshrugt_01_00_exact(i4 %x) {
; CHECK-LABEL: @lshrugt_01_00_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -1784,7 +1785,7 @@ define i1 @lshrugt_01_00_exact(i4 %x) {
define i1 @lshrugt_01_01_exact(i4 %x) {
; CHECK-LABEL: @lshrugt_01_01_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 2
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], 2
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -1794,7 +1795,7 @@ define i1 @lshrugt_01_01_exact(i4 %x) {
define i1 @lshrugt_01_02_exact(i4 %x) {
; CHECK-LABEL: @lshrugt_01_02_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 4
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], 4
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -1804,7 +1805,7 @@ define i1 @lshrugt_01_02_exact(i4 %x) {
define i1 @lshrugt_01_03_exact(i4 %x) {
; CHECK-LABEL: @lshrugt_01_03_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 6
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], 6
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -1814,7 +1815,7 @@ define i1 @lshrugt_01_03_exact(i4 %x) {
define i1 @lshrugt_01_04_exact(i4 %x) {
; CHECK-LABEL: @lshrugt_01_04_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, -8
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], -8
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -1824,7 +1825,7 @@ define i1 @lshrugt_01_04_exact(i4 %x) {
define i1 @lshrugt_01_05_exact(i4 %x) {
; CHECK-LABEL: @lshrugt_01_05_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, -6
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], -6
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -1834,7 +1835,7 @@ define i1 @lshrugt_01_05_exact(i4 %x) {
define i1 @lshrugt_01_06_exact(i4 %x) {
; CHECK-LABEL: @lshrugt_01_06_exact(
; CHECK-NEXT: [[C:%.*]] = icmp eq i4 %x, -2
; CHECK-NEXT: [[C:%.*]] = icmp eq i4 [[X:%.*]], -2
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -1925,7 +1926,7 @@ define i1 @lshrugt_01_15_exact(i4 %x) {
define i1 @lshrugt_02_00_exact(i4 %x) {
; CHECK-LABEL: @lshrugt_02_00_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 2
@ -1935,7 +1936,7 @@ define i1 @lshrugt_02_00_exact(i4 %x) {
define i1 @lshrugt_02_01_exact(i4 %x) {
; CHECK-LABEL: @lshrugt_02_01_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 4
; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 [[X:%.*]], 4
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 2
@ -1945,7 +1946,7 @@ define i1 @lshrugt_02_01_exact(i4 %x) {
define i1 @lshrugt_02_02_exact(i4 %x) {
; CHECK-LABEL: @lshrugt_02_02_exact(
; CHECK-NEXT: [[C:%.*]] = icmp eq i4 %x, -4
; CHECK-NEXT: [[C:%.*]] = icmp eq i4 [[X:%.*]], -4
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 2
@ -2072,7 +2073,7 @@ define i1 @lshrugt_02_15_exact(i4 %x) {
define i1 @lshrugt_03_00_exact(i4 %x) {
; CHECK-LABEL: @lshrugt_03_00_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 3
@ -2226,7 +2227,7 @@ define i1 @lshrult_01_00_exact(i4 %x) {
define i1 @lshrult_01_01_exact(i4 %x) {
; CHECK-LABEL: @lshrult_01_01_exact(
; CHECK-NEXT: [[C:%.*]] = icmp eq i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp eq i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -2236,7 +2237,7 @@ define i1 @lshrult_01_01_exact(i4 %x) {
define i1 @lshrult_01_02_exact(i4 %x) {
; CHECK-LABEL: @lshrult_01_02_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, 4
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 [[X:%.*]], 4
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -2246,7 +2247,7 @@ define i1 @lshrult_01_02_exact(i4 %x) {
define i1 @lshrult_01_03_exact(i4 %x) {
; CHECK-LABEL: @lshrult_01_03_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, 6
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 [[X:%.*]], 6
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -2256,7 +2257,7 @@ define i1 @lshrult_01_03_exact(i4 %x) {
define i1 @lshrult_01_04_exact(i4 %x) {
; CHECK-LABEL: @lshrult_01_04_exact(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -1
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -2266,7 +2267,7 @@ define i1 @lshrult_01_04_exact(i4 %x) {
define i1 @lshrult_01_05_exact(i4 %x) {
; CHECK-LABEL: @lshrult_01_05_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, -6
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 [[X:%.*]], -6
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -2276,7 +2277,7 @@ define i1 @lshrult_01_05_exact(i4 %x) {
define i1 @lshrult_01_06_exact(i4 %x) {
; CHECK-LABEL: @lshrult_01_06_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, -4
; CHECK-NEXT: [[C:%.*]] = icmp ult i4 [[X:%.*]], -4
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -2286,7 +2287,7 @@ define i1 @lshrult_01_06_exact(i4 %x) {
define i1 @lshrult_01_07_exact(i4 %x) {
; CHECK-LABEL: @lshrult_01_07_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, -2
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 [[X:%.*]], -2
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 1
@ -2377,7 +2378,7 @@ define i1 @lshrult_02_00_exact(i4 %x) {
define i1 @lshrult_02_01_exact(i4 %x) {
; CHECK-LABEL: @lshrult_02_01_exact(
; CHECK-NEXT: [[C:%.*]] = icmp eq i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp eq i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 2
@ -2387,7 +2388,7 @@ define i1 @lshrult_02_01_exact(i4 %x) {
define i1 @lshrult_02_02_exact(i4 %x) {
; CHECK-LABEL: @lshrult_02_02_exact(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -1
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 2
@ -2397,7 +2398,7 @@ define i1 @lshrult_02_02_exact(i4 %x) {
define i1 @lshrult_02_03_exact(i4 %x) {
; CHECK-LABEL: @lshrult_02_03_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, -4
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 [[X:%.*]], -4
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 2
@ -2524,7 +2525,7 @@ define i1 @lshrult_03_00_exact(i4 %x) {
define i1 @lshrult_03_01_exact(i4 %x) {
; CHECK-LABEL: @lshrult_03_01_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, -8
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 [[X:%.*]], -8
; CHECK-NEXT: ret i1 [[C]]
;
%s = lshr exact i4 %x, 3
@ -2660,7 +2661,7 @@ define i1 @lshrult_03_15_exact(i4 %x) {
define i1 @ashrsgt_01_00_exact(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_00_exact(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -2670,7 +2671,7 @@ define i1 @ashrsgt_01_00_exact(i4 %x) {
define i1 @ashrsgt_01_01_exact(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_01_exact(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 2
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], 2
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -2680,7 +2681,7 @@ define i1 @ashrsgt_01_01_exact(i4 %x) {
define i1 @ashrsgt_01_02_exact(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_02_exact(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 4
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], 4
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -2771,7 +2772,7 @@ define i1 @ashrsgt_01_11_exact(i4 %x) {
define i1 @ashrsgt_01_12_exact(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_12_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, -8
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 [[X:%.*]], -8
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -2781,7 +2782,7 @@ define i1 @ashrsgt_01_12_exact(i4 %x) {
define i1 @ashrsgt_01_13_exact(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_13_exact(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -6
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -6
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -2791,7 +2792,7 @@ define i1 @ashrsgt_01_13_exact(i4 %x) {
define i1 @ashrsgt_01_14_exact(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_14_exact(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -4
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -4
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -2801,7 +2802,7 @@ define i1 @ashrsgt_01_14_exact(i4 %x) {
define i1 @ashrsgt_01_15_exact(i4 %x) {
; CHECK-LABEL: @ashrsgt_01_15_exact(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -1
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -2811,7 +2812,7 @@ define i1 @ashrsgt_01_15_exact(i4 %x) {
define i1 @ashrsgt_02_00_exact(i4 %x) {
; CHECK-LABEL: @ashrsgt_02_00_exact(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 2
@ -2938,7 +2939,7 @@ define i1 @ashrsgt_02_13_exact(i4 %x) {
define i1 @ashrsgt_02_14_exact(i4 %x) {
; CHECK-LABEL: @ashrsgt_02_14_exact(
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, -8
; CHECK-NEXT: [[C:%.*]] = icmp ne i4 [[X:%.*]], -8
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 2
@ -2948,7 +2949,7 @@ define i1 @ashrsgt_02_14_exact(i4 %x) {
define i1 @ashrsgt_02_15_exact(i4 %x) {
; CHECK-LABEL: @ashrsgt_02_15_exact(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -1
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 2
@ -3093,7 +3094,7 @@ define i1 @ashrsgt_03_14_exact(i4 %x) {
define i1 @ashrsgt_03_15_exact(i4 %x) {
; CHECK-LABEL: @ashrsgt_03_15_exact(
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 [[X:%.*]], -1
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 3
@ -3103,7 +3104,7 @@ define i1 @ashrsgt_03_15_exact(i4 %x) {
define i1 @ashrslt_01_00_exact(i4 %x) {
; CHECK-LABEL: @ashrslt_01_00_exact(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -3113,7 +3114,7 @@ define i1 @ashrslt_01_00_exact(i4 %x) {
define i1 @ashrslt_01_01_exact(i4 %x) {
; CHECK-LABEL: @ashrslt_01_01_exact(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 2
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 2
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -3123,7 +3124,7 @@ define i1 @ashrslt_01_01_exact(i4 %x) {
define i1 @ashrslt_01_02_exact(i4 %x) {
; CHECK-LABEL: @ashrslt_01_02_exact(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 4
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 4
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -3133,7 +3134,7 @@ define i1 @ashrslt_01_02_exact(i4 %x) {
define i1 @ashrslt_01_03_exact(i4 %x) {
; CHECK-LABEL: @ashrslt_01_03_exact(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 6
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 6
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -3224,7 +3225,7 @@ define i1 @ashrslt_01_12_exact(i4 %x) {
define i1 @ashrslt_01_13_exact(i4 %x) {
; CHECK-LABEL: @ashrslt_01_13_exact(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -6
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], -6
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -3234,7 +3235,7 @@ define i1 @ashrslt_01_13_exact(i4 %x) {
define i1 @ashrslt_01_14_exact(i4 %x) {
; CHECK-LABEL: @ashrslt_01_14_exact(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -4
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], -4
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -3244,7 +3245,7 @@ define i1 @ashrslt_01_14_exact(i4 %x) {
define i1 @ashrslt_01_15_exact(i4 %x) {
; CHECK-LABEL: @ashrslt_01_15_exact(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -2
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], -2
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 1
@ -3254,7 +3255,7 @@ define i1 @ashrslt_01_15_exact(i4 %x) {
define i1 @ashrslt_02_00_exact(i4 %x) {
; CHECK-LABEL: @ashrslt_02_00_exact(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 2
@ -3264,7 +3265,7 @@ define i1 @ashrslt_02_00_exact(i4 %x) {
define i1 @ashrslt_02_01_exact(i4 %x) {
; CHECK-LABEL: @ashrslt_02_01_exact(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 4
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 4
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 2
@ -3391,7 +3392,7 @@ define i1 @ashrslt_02_14_exact(i4 %x) {
define i1 @ashrslt_02_15_exact(i4 %x) {
; CHECK-LABEL: @ashrslt_02_15_exact(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -4
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], -4
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 2
@ -3401,7 +3402,7 @@ define i1 @ashrslt_02_15_exact(i4 %x) {
define i1 @ashrslt_03_00_exact(i4 %x) {
; CHECK-LABEL: @ashrslt_03_00_exact(
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
; CHECK-NEXT: [[C:%.*]] = icmp slt i4 [[X:%.*]], 0
; CHECK-NEXT: ret i1 [[C]]
;
%s = ashr exact i4 %x, 3