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