| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 | |
| ; RUN: llc < %s -mtriple=riscv64 | FileCheck %s | |
| define i64 @f(ptr %p) { | |
| ; CHECK-LABEL: f: | |
| ; CHECK: # %bb.0: | |
| ; CHECK-NEXT: lb a0, 0(a0) | |
| ; CHECK-NEXT: srai a0, a0, 63 | |
| ; CHECK-NEXT: ret | |
| %load = load i8, ptr %p, align 1 | |
| %conv1 = zext i8 %load to i32 | |
| %cmp = icmp ult i32 127, %conv1 | |
| %conv2 = zext i1 %cmp to i32 | |
| %sub = sub nsw i32 0, %conv2 | |
| %conv3 = sext i32 %sub to i64 | |
| ret i64 %conv3 | |
| } |