| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 | |
| ; RUN: llc < %s -mtriple=x86_64-linux-gnu | FileCheck %s | |
| define i64 @off(i8 signext %a) { | |
| ; CHECK-LABEL: off: | |
| ; CHECK: # %bb.0: # %entry | |
| ; CHECK-NEXT: addb $-128, %dil | |
| ; CHECK-NEXT: movzbl %dil, %eax | |
| ; CHECK-NEXT: shll $3, %eax | |
| ; CHECK-NEXT: retq | |
| entry: | |
| %add = xor i8 %a, -128 | |
| %conv2 = zext i8 %add to i64 | |
| %mul = shl nuw nsw i64 %conv2, 3 | |
| ret i64 %mul | |
| } |