| ; RUN: llc -O0 -mtriple=x86_64-unknown -mcpu=skx -o - %s | 
 | ; RUN: llc     -mtriple=x86_64-unknown -mcpu=skx -o - %s | 
 | ; RUN: llc -O0 -mtriple=i686-unknown   -mcpu=skx -o - %s | 
 | ; RUN: llc     -mtriple=i686-unknown   -mcpu=skx -o - %s | 
 | ; REQUIRES: asserts | 
 |  | 
 | @var_26 = external dso_local global i16, align 2 | 
 |  | 
 | define void @foo() #0 { | 
 |  %1 = alloca i16, align 2 | 
 |  %2 = load i16, ptr @var_26, align 2 | 
 |  %3 = zext i16 %2 to i32 | 
 |  %4 = icmp ne i32 %3, 7 | 
 |  %5 = zext i1 %4 to i16 | 
 |  store i16 %5, ptr %1, align 2 | 
 |  %6 = load i16, ptr @var_26, align 2 | 
 |  %7 = zext i16 %6 to i32 | 
 |  %8 = and i32 1, %7 | 
 |  %9 = shl i32 %8, 0 | 
 |  %10 = load i16, ptr @var_26, align 2 | 
 |  %11 = zext i16 %10 to i32 | 
 |  %12 = icmp ne i32 %11, 7 | 
 |  %13 = zext i1 %12 to i32 | 
 |  %14 = and i32 %9, %13 | 
 |  %15 = icmp ne i32 %14, 0 | 
 |  %16 = zext i1 %15 to i8 | 
 |  store i8 %16, ptr undef, align 1 | 
 |  unreachable | 
 |  } |