|  | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | 
|  | ; RUN: llc < %s -O2 -mtriple=x86_64-unknown-unknown | FileCheck %s | 
|  | ; Checks that a zeroing mov is inserted for the trunc/zext pair even when | 
|  | ; the source of the zext is an AssertSext node | 
|  | ; PR20494 | 
|  |  | 
|  | define i64 @main(i64 %a) { | 
|  | ; CHECK-LABEL: main: | 
|  | ; CHECK:       # %bb.0: | 
|  | ; CHECK-NEXT:    orq $-2, %rdi | 
|  | ; CHECK-NEXT:    movl %edi, %eax | 
|  | ; CHECK-NEXT:    retq | 
|  | %or = or i64 %a, -2 | 
|  | %trunc = trunc i64 %or to i32 | 
|  | br label %l | 
|  | l: | 
|  | %ext = zext i32 %trunc to i64 | 
|  | trunc i64 %or to i32 ; to keep the or from being narrowed | 
|  | ret i64 %ext | 
|  | } |