; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3 ; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s @ak = external global i16 @s = external global i16 define i32 @main() { ; CHECK-LABEL: main: ; CHECK: # %bb.0: ; CHECK-NEXT: movq ak@GOTPCREL(%rip), %rax ; CHECK-NEXT: movq s@GOTPCREL(%rip), %rcx ; CHECK-NEXT: movzwl (%rcx), %ecx ; CHECK-NEXT: movzwl (%rax), %eax ; CHECK-NEXT: movswl %ax, %ecx ; CHECK-NEXT: orl $65534, %eax # imm = 0xFFFE ; CHECK-NEXT: xorl %ecx, %eax ; CHECK-NEXT: retq %i = load i16, ptr @ak, align 2 %i1 = load volatile i16, ptr @s, align 2 %i2 = load i16, ptr @ak, align 2 %i3 = xor i16 %i2, -1 %conv4211404 = zext i16 %i3 to i64 %xor422 = xor i64 1, %conv4211404 %conv3591399 = zext i16 %i to i64 %or424 = or i64 %xor422, %conv3591399 %conv333 = sext i16 %i to i32 %conv434 = zext i16 %i2 to i32 %i4 = trunc i64 %or424 to i32 %or436 = or i32 %conv434, %i4 %conv453 = xor i32 %conv333, %or436 ret i32 %conv453 }