+; 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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