1 ; RUN: llc < %s -march=x86-64 -mtriple=x86_64-pc-linux-gnu -show-mc-encoding | FileCheck %s 2 3 ; PR8365 4 ; CHECK: andl $-64, %edi # encoding: [0x83,0xe7,0xc0] 5 6 define i64 @bra(i32 %zed) nounwind { 7 %t1 = zext i32 %zed to i64 8 %t2 = and i64 %t1, 4294967232 9 ret i64 %t2 10 } 11 12 ; CHECK: orq $2, %rdi # encoding: [0x48,0x83,0xcf,0x02] 13 14 define void @foo(i64 %zed, i64* %x) nounwind { 15 %t1 = and i64 %zed, -4 16 %t2 = or i64 %t1, 2 17 store i64 %t2, i64* %x, align 8 18 ret void 19 } 20 21 define i64 @bar(i64 %zed) nounwind { 22 ; CHECK: andl $42, %edi # encoding: [0x83,0xe7,0x2a] 23 %t1 = and i64 %zed, 42 24 ret i64 %t1 25 } 26 27 define i64 @baz(i64 %zed) nounwind { 28 ; CHECK: andl $2147483647, %edi # encoding: [0x81,0xe7,0xff,0xff,0xff,0x7f] 29 %t1 = and i64 %zed, 2147483647 30 ret i64 %t1 31 } 32