; 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 }