| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 | 
 | ; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s | 
 |  | 
 | define i64 @foo() nounwind { | 
 | ; CHECK-LABEL: foo: | 
 | ; CHECK:       # %bb.0: # %entry | 
 | ; CHECK-NEXT:    cmpl $12, 0 | 
 | ; CHECK-NEXT:    je .LBB0_1 | 
 | ; CHECK-NEXT:  # %bb.2: # %bb65 | 
 | ; CHECK-NEXT:    xorl %ecx, %ecx | 
 | ; CHECK-NEXT:    #APP | 
 | ; CHECK-NEXT:    #NO_APP | 
 | ; CHECK-NEXT:    xorl %eax, %eax | 
 | ; CHECK-NEXT:    retq | 
 | ; CHECK-NEXT:  .LBB0_1: # %bb56 | 
 | entry: | 
 | 	%t0 = load i32, ptr null, align 8 | 
 | 	switch i32 %t0, label %bb65 [ | 
 | 		i32 16, label %bb | 
 | 		i32 12, label %bb56 | 
 | 	] | 
 |  | 
 | bb: | 
 | 	br label %bb65 | 
 |  | 
 | bb56: | 
 | 	unreachable | 
 |  | 
 | bb65: | 
 | 	%a = phi i64 [ 0, %bb ], [ 0, %entry ] | 
 | 	tail call void asm "", "{cx}"(i64 %a) nounwind | 
 | 	%t15 = and i64 %a, 4294967295 | 
 | 	ret i64 %t15 | 
 | } | 
 |  | 
 | define i64 @bar(i64 %t0) nounwind { | 
 | ; CHECK-LABEL: bar: | 
 | ; CHECK:       # %bb.0: | 
 | ; CHECK-NEXT:    movq %rdi, %rax | 
 | ; CHECK-NEXT:    xorl %ecx, %ecx | 
 | ; CHECK-NEXT:    #APP | 
 | ; CHECK-NEXT:    #NO_APP | 
 | ; CHECK-NEXT:    negl %eax | 
 | ; CHECK-NEXT:    retq | 
 | 	call void asm "", "{cx}"(i64 0) nounwind | 
 | 	%t1 = sub i64 0, %t0 | 
 | 	%t2 = and i64 %t1, 4294967295 | 
 | 	ret i64 %t2 | 
 | } |