| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
| ; RUN: llc < %s -mtriple=aarch64-unknown-linux-gnu | FileCheck %s |
| |
| ; This used to generate incorrect code because we sign extended |
| ; the undef to undef instead of to 0. |
| |
| define i1 @test14(i8 %X) { |
| ; CHECK-LABEL: test14: |
| ; CHECK: // %bb.0: |
| ; CHECK-NEXT: mov w8, #-113 |
| ; CHECK-NEXT: // kill: def $w0 killed $w0 def $x0 |
| ; CHECK-NEXT: lsl w8, w8, w0 |
| ; CHECK-NEXT: sxtb w8, w8 |
| ; CHECK-NEXT: cmp w8, #0 |
| ; CHECK-NEXT: cset w0, gt |
| ; CHECK-NEXT: ret |
| %1 = shl i8 -113, %X |
| %cmp = icmp slt i8 undef, %1 |
| ret i1 %cmp |
| } |