1*e094abdeSVolodymyr Vasylkun; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 2*e094abdeSVolodymyr Vasylkun; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s 3*e094abdeSVolodymyr Vasylkun 4*e094abdeSVolodymyr Vasylkundefine i8 @ucmp.8.8(i8 zeroext %x, i8 zeroext %y) nounwind { 5*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: ucmp.8.8: 6*e094abdeSVolodymyr Vasylkun; CHECK: # %bb.0: 7*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: cr %r2, %r3 8*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lhi %r2, 0 9*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochih %r2, 1 10*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochil %r2, -1 11*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: br %r14 12*e094abdeSVolodymyr Vasylkun %1 = call i8 @llvm.ucmp(i8 %x, i8 %y) 13*e094abdeSVolodymyr Vasylkun ret i8 %1 14*e094abdeSVolodymyr Vasylkun} 15*e094abdeSVolodymyr Vasylkun 16*e094abdeSVolodymyr Vasylkundefine i8 @ucmp.8.16(i16 zeroext %x, i16 zeroext %y) nounwind { 17*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: ucmp.8.16: 18*e094abdeSVolodymyr Vasylkun; CHECK: # %bb.0: 19*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: cr %r2, %r3 20*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lhi %r2, 0 21*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochih %r2, 1 22*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochil %r2, -1 23*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: br %r14 24*e094abdeSVolodymyr Vasylkun %1 = call i8 @llvm.ucmp(i16 %x, i16 %y) 25*e094abdeSVolodymyr Vasylkun ret i8 %1 26*e094abdeSVolodymyr Vasylkun} 27*e094abdeSVolodymyr Vasylkun 28*e094abdeSVolodymyr Vasylkundefine i8 @ucmp.8.32(i32 %x, i32 %y) nounwind { 29*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: ucmp.8.32: 30*e094abdeSVolodymyr Vasylkun; CHECK: # %bb.0: 31*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: clr %r2, %r3 32*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lhi %r2, 0 33*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochih %r2, 1 34*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochil %r2, -1 35*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: br %r14 36*e094abdeSVolodymyr Vasylkun %1 = call i8 @llvm.ucmp(i32 %x, i32 %y) 37*e094abdeSVolodymyr Vasylkun ret i8 %1 38*e094abdeSVolodymyr Vasylkun} 39*e094abdeSVolodymyr Vasylkun 40*e094abdeSVolodymyr Vasylkundefine i8 @ucmp.8.64(i64 %x, i64 %y) nounwind { 41*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: ucmp.8.64: 42*e094abdeSVolodymyr Vasylkun; CHECK: # %bb.0: 43*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: clgr %r2, %r3 44*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lhi %r2, 0 45*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochih %r2, 1 46*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochil %r2, -1 47*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: br %r14 48*e094abdeSVolodymyr Vasylkun %1 = call i8 @llvm.ucmp(i64 %x, i64 %y) 49*e094abdeSVolodymyr Vasylkun ret i8 %1 50*e094abdeSVolodymyr Vasylkun} 51*e094abdeSVolodymyr Vasylkun 52*e094abdeSVolodymyr Vasylkundefine i8 @ucmp.8.128(i128 %x, i128 %y) nounwind { 53*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: ucmp.8.128: 54*e094abdeSVolodymyr Vasylkun; CHECK: # %bb.0: 55*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: vl %v0, 0(%r3), 3 56*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: vl %v1, 0(%r2), 3 57*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: veclg %v0, %v1 58*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: jlh .LBB4_2 59*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: # %bb.1: 60*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: vchlgs %v2, %v1, %v0 61*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: .LBB4_2: 62*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lhi %r2, 0 63*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochil %r2, 1 64*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: veclg %v1, %v0 65*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: jlh .LBB4_4 66*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: # %bb.3: 67*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: vchlgs %v0, %v0, %v1 68*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: .LBB4_4: 69*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochil %r2, -1 70*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: br %r14 71*e094abdeSVolodymyr Vasylkun %1 = call i8 @llvm.ucmp(i128 %x, i128 %y) 72*e094abdeSVolodymyr Vasylkun ret i8 %1 73*e094abdeSVolodymyr Vasylkun} 74*e094abdeSVolodymyr Vasylkun 75*e094abdeSVolodymyr Vasylkundefine i32 @ucmp.32.32(i32 %x, i32 %y) nounwind { 76*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: ucmp.32.32: 77*e094abdeSVolodymyr Vasylkun; CHECK: # %bb.0: 78*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: clr %r2, %r3 79*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lhi %r2, 0 80*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochih %r2, 1 81*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochil %r2, -1 82*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: br %r14 83*e094abdeSVolodymyr Vasylkun %1 = call i32 @llvm.ucmp(i32 %x, i32 %y) 84*e094abdeSVolodymyr Vasylkun ret i32 %1 85*e094abdeSVolodymyr Vasylkun} 86*e094abdeSVolodymyr Vasylkun 87*e094abdeSVolodymyr Vasylkundefine i32 @ucmp.32.64(i64 %x, i64 %y) nounwind { 88*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: ucmp.32.64: 89*e094abdeSVolodymyr Vasylkun; CHECK: # %bb.0: 90*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: clgr %r2, %r3 91*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lhi %r2, 0 92*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochih %r2, 1 93*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lochil %r2, -1 94*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: br %r14 95*e094abdeSVolodymyr Vasylkun %1 = call i32 @llvm.ucmp(i64 %x, i64 %y) 96*e094abdeSVolodymyr Vasylkun ret i32 %1 97*e094abdeSVolodymyr Vasylkun} 98*e094abdeSVolodymyr Vasylkun 99*e094abdeSVolodymyr Vasylkundefine i64 @ucmp.64.64(i64 %x, i64 %y) nounwind { 100*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: ucmp.64.64: 101*e094abdeSVolodymyr Vasylkun; CHECK: # %bb.0: 102*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: clgr %r2, %r3 103*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: lghi %r2, 0 104*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: locghih %r2, 1 105*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: locghil %r2, -1 106*e094abdeSVolodymyr Vasylkun; CHECK-NEXT: br %r14 107*e094abdeSVolodymyr Vasylkun %1 = call i64 @llvm.ucmp(i64 %x, i64 %y) 108*e094abdeSVolodymyr Vasylkun ret i64 %1 109*e094abdeSVolodymyr Vasylkun} 110