925 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+ndd -verify-machineinstrs --show-mc-encoding | FileCheck %s3; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+ndd,nf -verify-machineinstrs --show-mc-encoding | FileCheck --check-prefix=NF %s4; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+ndd,nf -x86-enable-apx-for-relocation=true -verify-machineinstrs --show-mc-encoding | FileCheck --check-prefix=NF %s5 6define i8 @or8rr(i8 noundef %a, i8 noundef %b) {7; CHECK-LABEL: or8rr:8; CHECK: # %bb.0: # %entry9; CHECK-NEXT: orl %esi, %edi, %eax # encoding: [0x62,0xf4,0x7c,0x18,0x09,0xf7]10; CHECK-NEXT: # kill: def $al killed $al killed $eax11; CHECK-NEXT: retq # encoding: [0xc3]12;13; NF-LABEL: or8rr:14; NF: # %bb.0: # %entry15; NF-NEXT: {nf} orl %esi, %edi, %eax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x09,0xf7]16; NF-NEXT: # kill: def $al killed $al killed $eax17; NF-NEXT: retq # encoding: [0xc3]18entry:19 %or = or i8 %a, %b20 ret i8 %or21}22 23define i16 @or16rr(i16 noundef %a, i16 noundef %b) {24; CHECK-LABEL: or16rr:25; CHECK: # %bb.0: # %entry26; CHECK-NEXT: orl %esi, %edi, %eax # encoding: [0x62,0xf4,0x7c,0x18,0x09,0xf7]27; CHECK-NEXT: # kill: def $ax killed $ax killed $eax28; CHECK-NEXT: retq # encoding: [0xc3]29;30; NF-LABEL: or16rr:31; NF: # %bb.0: # %entry32; NF-NEXT: {nf} orl %esi, %edi, %eax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x09,0xf7]33; NF-NEXT: # kill: def $ax killed $ax killed $eax34; NF-NEXT: retq # encoding: [0xc3]35entry:36 %or = or i16 %a, %b37 ret i16 %or38}39 40define i32 @or32rr(i32 noundef %a, i32 noundef %b) {41; CHECK-LABEL: or32rr:42; CHECK: # %bb.0: # %entry43; CHECK-NEXT: orl %esi, %edi, %eax # encoding: [0x62,0xf4,0x7c,0x18,0x09,0xf7]44; CHECK-NEXT: retq # encoding: [0xc3]45;46; NF-LABEL: or32rr:47; NF: # %bb.0: # %entry48; NF-NEXT: {nf} orl %esi, %edi, %eax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x09,0xf7]49; NF-NEXT: retq # encoding: [0xc3]50entry:51 %or = or i32 %a, %b52 ret i32 %or53}54 55define i64 @or64rr(i64 noundef %a, i64 noundef %b) {56; CHECK-LABEL: or64rr:57; CHECK: # %bb.0: # %entry58; CHECK-NEXT: orq %rsi, %rdi, %rax # encoding: [0x62,0xf4,0xfc,0x18,0x09,0xf7]59; CHECK-NEXT: retq # encoding: [0xc3]60;61; NF-LABEL: or64rr:62; NF: # %bb.0: # %entry63; NF-NEXT: {nf} orq %rsi, %rdi, %rax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0xfc,0x1c,0x09,0xf7]64; NF-NEXT: retq # encoding: [0xc3]65entry:66 %or = or i64 %a, %b67 ret i64 %or68}69 70define i8 @or8rm(i8 noundef %a, ptr %b) {71; CHECK-LABEL: or8rm:72; CHECK: # %bb.0: # %entry73; CHECK-NEXT: orb (%rsi), %dil, %al # encoding: [0x62,0xf4,0x7c,0x18,0x0a,0x3e]74; CHECK-NEXT: retq # encoding: [0xc3]75;76; NF-LABEL: or8rm:77; NF: # %bb.0: # %entry78; NF-NEXT: {nf} orb (%rsi), %dil, %al # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x0a,0x3e]79; NF-NEXT: retq # encoding: [0xc3]80entry:81 %t = load i8, ptr %b82 %or = or i8 %a, %t83 ret i8 %or84}85 86define i16 @or16rm(i16 noundef %a, ptr %b) {87; CHECK-LABEL: or16rm:88; CHECK: # %bb.0: # %entry89; CHECK-NEXT: orw (%rsi), %di, %ax # encoding: [0x62,0xf4,0x7d,0x18,0x0b,0x3e]90; CHECK-NEXT: retq # encoding: [0xc3]91;92; NF-LABEL: or16rm:93; NF: # %bb.0: # %entry94; NF-NEXT: {nf} orw (%rsi), %di, %ax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7d,0x1c,0x0b,0x3e]95; NF-NEXT: retq # encoding: [0xc3]96entry:97 %t = load i16, ptr %b98 %or = or i16 %a, %t99 ret i16 %or100}101 102define i32 @or32rm(i32 noundef %a, ptr %b) {103; CHECK-LABEL: or32rm:104; CHECK: # %bb.0: # %entry105; CHECK-NEXT: orl (%rsi), %edi, %eax # encoding: [0x62,0xf4,0x7c,0x18,0x0b,0x3e]106; CHECK-NEXT: retq # encoding: [0xc3]107;108; NF-LABEL: or32rm:109; NF: # %bb.0: # %entry110; NF-NEXT: {nf} orl (%rsi), %edi, %eax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x0b,0x3e]111; NF-NEXT: retq # encoding: [0xc3]112entry:113 %t = load i32, ptr %b114 %or = or i32 %a, %t115 ret i32 %or116}117 118define i64 @or64rm(i64 noundef %a, ptr %b) {119; CHECK-LABEL: or64rm:120; CHECK: # %bb.0: # %entry121; CHECK-NEXT: orq (%rsi), %rdi, %rax # encoding: [0x62,0xf4,0xfc,0x18,0x0b,0x3e]122; CHECK-NEXT: retq # encoding: [0xc3]123;124; NF-LABEL: or64rm:125; NF: # %bb.0: # %entry126; NF-NEXT: {nf} orq (%rsi), %rdi, %rax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0xfc,0x1c,0x0b,0x3e]127; NF-NEXT: retq # encoding: [0xc3]128entry:129 %t = load i64, ptr %b130 %or = or i64 %a, %t131 ret i64 %or132}133 134define i16 @or16ri8(i16 noundef %a) {135; CHECK-LABEL: or16ri8:136; CHECK: # %bb.0: # %entry137; CHECK-NEXT: orw $123, %di, %ax # encoding: [0x62,0xf4,0x7d,0x18,0x83,0xcf,0x7b]138; CHECK-NEXT: retq # encoding: [0xc3]139;140; NF-LABEL: or16ri8:141; NF: # %bb.0: # %entry142; NF-NEXT: {nf} orw $123, %di, %ax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7d,0x1c,0x83,0xcf,0x7b]143; NF-NEXT: retq # encoding: [0xc3]144entry:145 %or = or i16 %a, 123146 ret i16 %or147}148 149define i32 @or32ri8(i32 noundef %a) {150; CHECK-LABEL: or32ri8:151; CHECK: # %bb.0: # %entry152; CHECK-NEXT: orl $123, %edi, %eax # encoding: [0x62,0xf4,0x7c,0x18,0x83,0xcf,0x7b]153; CHECK-NEXT: retq # encoding: [0xc3]154;155; NF-LABEL: or32ri8:156; NF: # %bb.0: # %entry157; NF-NEXT: {nf} orl $123, %edi, %eax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x83,0xcf,0x7b]158; NF-NEXT: retq # encoding: [0xc3]159entry:160 %or = or i32 %a, 123161 ret i32 %or162}163 164define i64 @or64ri8(i64 noundef %a) {165; CHECK-LABEL: or64ri8:166; CHECK: # %bb.0: # %entry167; CHECK-NEXT: orq $123, %rdi, %rax # encoding: [0x62,0xf4,0xfc,0x18,0x83,0xcf,0x7b]168; CHECK-NEXT: retq # encoding: [0xc3]169;170; NF-LABEL: or64ri8:171; NF: # %bb.0: # %entry172; NF-NEXT: {nf} orq $123, %rdi, %rax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0xfc,0x1c,0x83,0xcf,0x7b]173; NF-NEXT: retq # encoding: [0xc3]174entry:175 %or = or i64 %a, 123176 ret i64 %or177}178 179define i8 @or8ri(i8 noundef %a) {180; CHECK-LABEL: or8ri:181; CHECK: # %bb.0: # %entry182; CHECK-NEXT: orb $123, %dil, %al # encoding: [0x62,0xf4,0x7c,0x18,0x80,0xcf,0x7b]183; CHECK-NEXT: retq # encoding: [0xc3]184;185; NF-LABEL: or8ri:186; NF: # %bb.0: # %entry187; NF-NEXT: {nf} orb $123, %dil, %al # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x80,0xcf,0x7b]188; NF-NEXT: retq # encoding: [0xc3]189entry:190 %or = or i8 %a, 123191 ret i8 %or192}193 194define i16 @or16ri(i16 noundef %a) {195; CHECK-LABEL: or16ri:196; CHECK: # %bb.0: # %entry197; CHECK-NEXT: orw $1234, %di, %ax # encoding: [0x62,0xf4,0x7d,0x18,0x81,0xcf,0xd2,0x04]198; CHECK-NEXT: # imm = 0x4D2199; CHECK-NEXT: retq # encoding: [0xc3]200;201; NF-LABEL: or16ri:202; NF: # %bb.0: # %entry203; NF-NEXT: {nf} orw $1234, %di, %ax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7d,0x1c,0x81,0xcf,0xd2,0x04]204; NF-NEXT: # imm = 0x4D2205; NF-NEXT: retq # encoding: [0xc3]206entry:207 %or = or i16 %a, 1234208 ret i16 %or209}210 211define i32 @or32ri(i32 noundef %a) {212; CHECK-LABEL: or32ri:213; CHECK: # %bb.0: # %entry214; CHECK-NEXT: orl $123456, %edi, %eax # encoding: [0x62,0xf4,0x7c,0x18,0x81,0xcf,0x40,0xe2,0x01,0x00]215; CHECK-NEXT: # imm = 0x1E240216; CHECK-NEXT: retq # encoding: [0xc3]217;218; NF-LABEL: or32ri:219; NF: # %bb.0: # %entry220; NF-NEXT: {nf} orl $123456, %edi, %eax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x81,0xcf,0x40,0xe2,0x01,0x00]221; NF-NEXT: # imm = 0x1E240222; NF-NEXT: retq # encoding: [0xc3]223entry:224 %or = or i32 %a, 123456225 ret i32 %or226}227 228define i64 @or64ri(i64 noundef %a) {229; CHECK-LABEL: or64ri:230; CHECK: # %bb.0: # %entry231; CHECK-NEXT: orq $123456, %rdi, %rax # encoding: [0x62,0xf4,0xfc,0x18,0x81,0xcf,0x40,0xe2,0x01,0x00]232; CHECK-NEXT: # imm = 0x1E240233; CHECK-NEXT: retq # encoding: [0xc3]234;235; NF-LABEL: or64ri:236; NF: # %bb.0: # %entry237; NF-NEXT: {nf} orq $123456, %rdi, %rax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0xfc,0x1c,0x81,0xcf,0x40,0xe2,0x01,0x00]238; NF-NEXT: # imm = 0x1E240239; NF-NEXT: retq # encoding: [0xc3]240entry:241 %or = or i64 %a, 123456242 ret i64 %or243}244 245define i8 @or8mr(ptr %a, i8 noundef %b) {246; CHECK-LABEL: or8mr:247; CHECK: # %bb.0: # %entry248; CHECK-NEXT: orb (%rdi), %sil, %al # encoding: [0x62,0xf4,0x7c,0x18,0x0a,0x37]249; CHECK-NEXT: retq # encoding: [0xc3]250;251; NF-LABEL: or8mr:252; NF: # %bb.0: # %entry253; NF-NEXT: {nf} orb (%rdi), %sil, %al # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x0a,0x37]254; NF-NEXT: retq # encoding: [0xc3]255entry:256 %t= load i8, ptr %a257 %or = or i8 %t, %b258 ret i8 %or259}260 261define i16 @or16mr(ptr %a, i16 noundef %b) {262; CHECK-LABEL: or16mr:263; CHECK: # %bb.0: # %entry264; CHECK-NEXT: orw (%rdi), %si, %ax # encoding: [0x62,0xf4,0x7d,0x18,0x0b,0x37]265; CHECK-NEXT: retq # encoding: [0xc3]266;267; NF-LABEL: or16mr:268; NF: # %bb.0: # %entry269; NF-NEXT: {nf} orw (%rdi), %si, %ax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7d,0x1c,0x0b,0x37]270; NF-NEXT: retq # encoding: [0xc3]271entry:272 %t= load i16, ptr %a273 %or = or i16 %t, %b274 ret i16 %or275}276 277define i32 @or32mr(ptr %a, i32 noundef %b) {278; CHECK-LABEL: or32mr:279; CHECK: # %bb.0: # %entry280; CHECK-NEXT: orl (%rdi), %esi, %eax # encoding: [0x62,0xf4,0x7c,0x18,0x0b,0x37]281; CHECK-NEXT: retq # encoding: [0xc3]282;283; NF-LABEL: or32mr:284; NF: # %bb.0: # %entry285; NF-NEXT: {nf} orl (%rdi), %esi, %eax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x0b,0x37]286; NF-NEXT: retq # encoding: [0xc3]287entry:288 %t= load i32, ptr %a289 %or = or i32 %t, %b290 ret i32 %or291}292 293define i64 @or64mr(ptr %a, i64 noundef %b) {294; CHECK-LABEL: or64mr:295; CHECK: # %bb.0: # %entry296; CHECK-NEXT: orq (%rdi), %rsi, %rax # encoding: [0x62,0xf4,0xfc,0x18,0x0b,0x37]297; CHECK-NEXT: retq # encoding: [0xc3]298;299; NF-LABEL: or64mr:300; NF: # %bb.0: # %entry301; NF-NEXT: {nf} orq (%rdi), %rsi, %rax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0xfc,0x1c,0x0b,0x37]302; NF-NEXT: retq # encoding: [0xc3]303entry:304 %t= load i64, ptr %a305 %or = or i64 %t, %b306 ret i64 %or307}308 309define i16 @or16mi8(ptr %a) {310; CHECK-LABEL: or16mi8:311; CHECK: # %bb.0: # %entry312; CHECK-NEXT: orw $123, (%rdi), %ax # encoding: [0x62,0xf4,0x7d,0x18,0x83,0x0f,0x7b]313; CHECK-NEXT: retq # encoding: [0xc3]314;315; NF-LABEL: or16mi8:316; NF: # %bb.0: # %entry317; NF-NEXT: {nf} orw $123, (%rdi), %ax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7d,0x1c,0x83,0x0f,0x7b]318; NF-NEXT: retq # encoding: [0xc3]319entry:320 %t= load i16, ptr %a321 %or = or i16 %t, 123322 ret i16 %or323}324 325define i32 @or32mi8(ptr %a) {326; CHECK-LABEL: or32mi8:327; CHECK: # %bb.0: # %entry328; CHECK-NEXT: orl $123, (%rdi), %eax # encoding: [0x62,0xf4,0x7c,0x18,0x83,0x0f,0x7b]329; CHECK-NEXT: retq # encoding: [0xc3]330;331; NF-LABEL: or32mi8:332; NF: # %bb.0: # %entry333; NF-NEXT: {nf} orl $123, (%rdi), %eax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x83,0x0f,0x7b]334; NF-NEXT: retq # encoding: [0xc3]335entry:336 %t= load i32, ptr %a337 %or = or i32 %t, 123338 ret i32 %or339}340 341define i64 @or64mi8(ptr %a) {342; CHECK-LABEL: or64mi8:343; CHECK: # %bb.0: # %entry344; CHECK-NEXT: orq $123, (%rdi), %rax # encoding: [0x62,0xf4,0xfc,0x18,0x83,0x0f,0x7b]345; CHECK-NEXT: retq # encoding: [0xc3]346;347; NF-LABEL: or64mi8:348; NF: # %bb.0: # %entry349; NF-NEXT: {nf} orq $123, (%rdi), %rax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0xfc,0x1c,0x83,0x0f,0x7b]350; NF-NEXT: retq # encoding: [0xc3]351entry:352 %t= load i64, ptr %a353 %or = or i64 %t, 123354 ret i64 %or355}356 357define i8 @or8mi(ptr %a) {358; CHECK-LABEL: or8mi:359; CHECK: # %bb.0: # %entry360; CHECK-NEXT: orb $123, (%rdi), %al # encoding: [0x62,0xf4,0x7c,0x18,0x80,0x0f,0x7b]361; CHECK-NEXT: retq # encoding: [0xc3]362;363; NF-LABEL: or8mi:364; NF: # %bb.0: # %entry365; NF-NEXT: {nf} orb $123, (%rdi), %al # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x80,0x0f,0x7b]366; NF-NEXT: retq # encoding: [0xc3]367entry:368 %t= load i8, ptr %a369 %or = or i8 %t, 123370 ret i8 %or371}372 373define i16 @or16mi(ptr %a) {374; CHECK-LABEL: or16mi:375; CHECK: # %bb.0: # %entry376; CHECK-NEXT: orw $1234, (%rdi), %ax # encoding: [0x62,0xf4,0x7d,0x18,0x81,0x0f,0xd2,0x04]377; CHECK-NEXT: # imm = 0x4D2378; CHECK-NEXT: retq # encoding: [0xc3]379;380; NF-LABEL: or16mi:381; NF: # %bb.0: # %entry382; NF-NEXT: {nf} orw $1234, (%rdi), %ax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7d,0x1c,0x81,0x0f,0xd2,0x04]383; NF-NEXT: # imm = 0x4D2384; NF-NEXT: retq # encoding: [0xc3]385entry:386 %t= load i16, ptr %a387 %or = or i16 %t, 1234388 ret i16 %or389}390 391define i32 @or32mi(ptr %a) {392; CHECK-LABEL: or32mi:393; CHECK: # %bb.0: # %entry394; CHECK-NEXT: orl $123456, (%rdi), %eax # encoding: [0x62,0xf4,0x7c,0x18,0x81,0x0f,0x40,0xe2,0x01,0x00]395; CHECK-NEXT: # imm = 0x1E240396; CHECK-NEXT: retq # encoding: [0xc3]397;398; NF-LABEL: or32mi:399; NF: # %bb.0: # %entry400; NF-NEXT: {nf} orl $123456, (%rdi), %eax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x81,0x0f,0x40,0xe2,0x01,0x00]401; NF-NEXT: # imm = 0x1E240402; NF-NEXT: retq # encoding: [0xc3]403entry:404 %t= load i32, ptr %a405 %or = or i32 %t, 123456406 ret i32 %or407}408 409define i64 @or64mi(ptr %a) {410; CHECK-LABEL: or64mi:411; CHECK: # %bb.0: # %entry412; CHECK-NEXT: orq $123456, (%rdi), %rax # encoding: [0x62,0xf4,0xfc,0x18,0x81,0x0f,0x40,0xe2,0x01,0x00]413; CHECK-NEXT: # imm = 0x1E240414; CHECK-NEXT: retq # encoding: [0xc3]415;416; NF-LABEL: or64mi:417; NF: # %bb.0: # %entry418; NF-NEXT: {nf} orq $123456, (%rdi), %rax # EVEX TO EVEX Compression encoding: [0x62,0xf4,0xfc,0x1c,0x81,0x0f,0x40,0xe2,0x01,0x00]419; NF-NEXT: # imm = 0x1E240420; NF-NEXT: retq # encoding: [0xc3]421entry:422 %t= load i64, ptr %a423 %or = or i64 %t, 123456424 ret i64 %or425}426 427@d64 = dso_local global i64 0428 429define i1 @orflag8rr(i8 %a, i8 %b) {430; CHECK-LABEL: orflag8rr:431; CHECK: # %bb.0:432; CHECK-NEXT: notb %sil, %al # encoding: [0x62,0xf4,0x7c,0x18,0xf6,0xd6]433; CHECK-NEXT: orb %al, %dil, %cl # encoding: [0x62,0xf4,0x74,0x18,0x08,0xc7]434; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]435; CHECK-NEXT: movb %cl, d64(%rip) # encoding: [0x88,0x0d,A,A,A,A]436; CHECK-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte437; CHECK-NEXT: retq # encoding: [0xc3]438;439; NF-LABEL: orflag8rr:440; NF: # %bb.0:441; NF-NEXT: notb %sil, %al # encoding: [0x62,0xf4,0x7c,0x18,0xf6,0xd6]442; NF-NEXT: orb %al, %dil, %cl # encoding: [0x62,0xf4,0x74,0x18,0x08,0xc7]443; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]444; NF-NEXT: movb %cl, d64(%rip) # encoding: [0x88,0x0d,A,A,A,A]445; NF-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte446; NF-NEXT: retq # encoding: [0xc3]447 %xor = xor i8 %b, -1448 %v0 = or i8 %a, %xor ; 0xff << 50449 %v1 = icmp eq i8 %v0, 0450 store i8 %v0, ptr @d64451 ret i1 %v1452}453 454define i1 @orflag16rr(i16 %a, i16 %b) {455; CHECK-LABEL: orflag16rr:456; CHECK: # %bb.0:457; CHECK-NEXT: notw %si, %ax # encoding: [0x62,0xf4,0x7d,0x18,0xf7,0xd6]458; CHECK-NEXT: orw %ax, %di, %cx # encoding: [0x62,0xf4,0x75,0x18,0x09,0xc7]459; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]460; CHECK-NEXT: movw %cx, d64(%rip) # encoding: [0x66,0x89,0x0d,A,A,A,A]461; CHECK-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte462; CHECK-NEXT: retq # encoding: [0xc3]463;464; NF-LABEL: orflag16rr:465; NF: # %bb.0:466; NF-NEXT: notw %si, %ax # encoding: [0x62,0xf4,0x7d,0x18,0xf7,0xd6]467; NF-NEXT: orw %ax, %di, %cx # encoding: [0x62,0xf4,0x75,0x18,0x09,0xc7]468; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]469; NF-NEXT: movw %cx, d64(%rip) # encoding: [0x66,0x89,0x0d,A,A,A,A]470; NF-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte471; NF-NEXT: retq # encoding: [0xc3]472 %xor = xor i16 %b, -1473 %v0 = or i16 %a, %xor ; 0xff << 50474 %v1 = icmp eq i16 %v0, 0475 store i16 %v0, ptr @d64476 ret i1 %v1477}478 479define i1 @orflag32rr(i32 %a, i32 %b) {480; CHECK-LABEL: orflag32rr:481; CHECK: # %bb.0:482; CHECK-NEXT: orl %edi, %esi # EVEX TO LEGACY Compression encoding: [0x09,0xfe]483; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]484; CHECK-NEXT: movl %esi, d64(%rip) # encoding: [0x89,0x35,A,A,A,A]485; CHECK-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte486; CHECK-NEXT: retq # encoding: [0xc3]487;488; NF-LABEL: orflag32rr:489; NF: # %bb.0:490; NF-NEXT: orl %edi, %esi # EVEX TO LEGACY Compression encoding: [0x09,0xfe]491; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]492; NF-NEXT: movl %esi, d64(%rip) # encoding: [0x89,0x35,A,A,A,A]493; NF-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte494; NF-NEXT: retq # encoding: [0xc3]495 %v0 = or i32 %a, %b ; 0xff << 50496 %v1 = icmp eq i32 %v0, 0497 store i32 %v0, ptr @d64498 ret i1 %v1499}500 501define i1 @orflag64rr(i64 %a, i64 %b) {502; CHECK-LABEL: orflag64rr:503; CHECK: # %bb.0:504; CHECK-NEXT: orq %rdi, %rsi # EVEX TO LEGACY Compression encoding: [0x48,0x09,0xfe]505; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]506; CHECK-NEXT: movq %rsi, d64(%rip) # encoding: [0x48,0x89,0x35,A,A,A,A]507; CHECK-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte508; CHECK-NEXT: retq # encoding: [0xc3]509;510; NF-LABEL: orflag64rr:511; NF: # %bb.0:512; NF-NEXT: orq %rdi, %rsi # EVEX TO LEGACY Compression encoding: [0x48,0x09,0xfe]513; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]514; NF-NEXT: movq %rsi, d64(%rip) # encoding: [0x48,0x89,0x35,A,A,A,A]515; NF-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte516; NF-NEXT: retq # encoding: [0xc3]517 %v0 = or i64 %a, %b ; 0xff << 50518 %v1 = icmp eq i64 %v0, 0519 store i64 %v0, ptr @d64520 ret i1 %v1521}522 523define i1 @orflag8rm(ptr %ptr, i8 %b) {524; CHECK-LABEL: orflag8rm:525; CHECK: # %bb.0:526; CHECK-NEXT: notb %sil, %al # encoding: [0x62,0xf4,0x7c,0x18,0xf6,0xd6]527; CHECK-NEXT: orb (%rdi), %al, %cl # encoding: [0x62,0xf4,0x74,0x18,0x0a,0x07]528; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]529; CHECK-NEXT: movb %cl, d64(%rip) # encoding: [0x88,0x0d,A,A,A,A]530; CHECK-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte531; CHECK-NEXT: retq # encoding: [0xc3]532;533; NF-LABEL: orflag8rm:534; NF: # %bb.0:535; NF-NEXT: notb %sil, %al # encoding: [0x62,0xf4,0x7c,0x18,0xf6,0xd6]536; NF-NEXT: orb (%rdi), %al, %cl # encoding: [0x62,0xf4,0x74,0x18,0x0a,0x07]537; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]538; NF-NEXT: movb %cl, d64(%rip) # encoding: [0x88,0x0d,A,A,A,A]539; NF-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte540; NF-NEXT: retq # encoding: [0xc3]541 %a = load i8, ptr %ptr542 %xor = xor i8 %b, -1543 %v0 = or i8 %a, %xor ; 0xff << 50544 %v1 = icmp eq i8 %v0, 0545 store i8 %v0, ptr @d64546 ret i1 %v1547}548 549define i1 @orflag16rm(ptr %ptr, i16 %b) {550; CHECK-LABEL: orflag16rm:551; CHECK: # %bb.0:552; CHECK-NEXT: notw %si, %ax # encoding: [0x62,0xf4,0x7d,0x18,0xf7,0xd6]553; CHECK-NEXT: orw (%rdi), %ax, %cx # encoding: [0x62,0xf4,0x75,0x18,0x0b,0x07]554; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]555; CHECK-NEXT: movw %cx, d64(%rip) # encoding: [0x66,0x89,0x0d,A,A,A,A]556; CHECK-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte557; CHECK-NEXT: retq # encoding: [0xc3]558;559; NF-LABEL: orflag16rm:560; NF: # %bb.0:561; NF-NEXT: notw %si, %ax # encoding: [0x62,0xf4,0x7d,0x18,0xf7,0xd6]562; NF-NEXT: orw (%rdi), %ax, %cx # encoding: [0x62,0xf4,0x75,0x18,0x0b,0x07]563; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]564; NF-NEXT: movw %cx, d64(%rip) # encoding: [0x66,0x89,0x0d,A,A,A,A]565; NF-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte566; NF-NEXT: retq # encoding: [0xc3]567 %a = load i16, ptr %ptr568 %xor = xor i16 %b, -1569 %v0 = or i16 %a, %xor ; 0xff << 50570 %v1 = icmp eq i16 %v0, 0571 store i16 %v0, ptr @d64572 ret i1 %v1573}574 575define i1 @orflag32rm(ptr %ptr, i32 %b) {576; CHECK-LABEL: orflag32rm:577; CHECK: # %bb.0:578; CHECK-NEXT: orl (%rdi), %esi # EVEX TO LEGACY Compression encoding: [0x0b,0x37]579; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]580; CHECK-NEXT: movl %esi, d64(%rip) # encoding: [0x89,0x35,A,A,A,A]581; CHECK-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte582; CHECK-NEXT: retq # encoding: [0xc3]583;584; NF-LABEL: orflag32rm:585; NF: # %bb.0:586; NF-NEXT: orl (%rdi), %esi # EVEX TO LEGACY Compression encoding: [0x0b,0x37]587; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]588; NF-NEXT: movl %esi, d64(%rip) # encoding: [0x89,0x35,A,A,A,A]589; NF-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte590; NF-NEXT: retq # encoding: [0xc3]591 %a = load i32, ptr %ptr592 %v0 = or i32 %a, %b ; 0xff << 50593 %v1 = icmp eq i32 %v0, 0594 store i32 %v0, ptr @d64595 ret i1 %v1596}597 598define i1 @orflag64rm(ptr %ptr, i64 %b) {599; CHECK-LABEL: orflag64rm:600; CHECK: # %bb.0:601; CHECK-NEXT: orq (%rdi), %rsi # EVEX TO LEGACY Compression encoding: [0x48,0x0b,0x37]602; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]603; CHECK-NEXT: movq %rsi, d64(%rip) # encoding: [0x48,0x89,0x35,A,A,A,A]604; CHECK-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte605; CHECK-NEXT: retq # encoding: [0xc3]606;607; NF-LABEL: orflag64rm:608; NF: # %bb.0:609; NF-NEXT: orq (%rdi), %rsi # EVEX TO LEGACY Compression encoding: [0x48,0x0b,0x37]610; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]611; NF-NEXT: movq %rsi, d64(%rip) # encoding: [0x48,0x89,0x35,A,A,A,A]612; NF-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte613; NF-NEXT: retq # encoding: [0xc3]614 %a = load i64, ptr %ptr615 %v0 = or i64 %a, %b ; 0xff << 50616 %v1 = icmp eq i64 %v0, 0617 store i64 %v0, ptr @d64618 ret i1 %v1619}620 621define i1 @orflag8ri(i8 %a) {622; CHECK-LABEL: orflag8ri:623; CHECK: # %bb.0:624; CHECK-NEXT: orb $-124, %dil, %cl # encoding: [0x62,0xf4,0x74,0x18,0x80,0xcf,0x84]625; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]626; CHECK-NEXT: movb %cl, d64(%rip) # encoding: [0x88,0x0d,A,A,A,A]627; CHECK-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte628; CHECK-NEXT: retq # encoding: [0xc3]629;630; NF-LABEL: orflag8ri:631; NF: # %bb.0:632; NF-NEXT: orb $-124, %dil, %cl # encoding: [0x62,0xf4,0x74,0x18,0x80,0xcf,0x84]633; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]634; NF-NEXT: movb %cl, d64(%rip) # encoding: [0x88,0x0d,A,A,A,A]635; NF-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte636; NF-NEXT: retq # encoding: [0xc3]637 %xor = xor i8 123, -1638 %v0 = or i8 %a, %xor ; 0xff << 50639 %v1 = icmp eq i8 %v0, 0640 store i8 %v0, ptr @d64641 ret i1 %v1642}643 644define i1 @orflag16ri(i16 %a) {645; CHECK-LABEL: orflag16ri:646; CHECK: # %bb.0:647; CHECK-NEXT: orw $-1235, %di, %cx # encoding: [0x62,0xf4,0x75,0x18,0x81,0xcf,0x2d,0xfb]648; CHECK-NEXT: # imm = 0xFB2D649; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]650; CHECK-NEXT: movw %cx, d64(%rip) # encoding: [0x66,0x89,0x0d,A,A,A,A]651; CHECK-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte652; CHECK-NEXT: retq # encoding: [0xc3]653;654; NF-LABEL: orflag16ri:655; NF: # %bb.0:656; NF-NEXT: orw $-1235, %di, %cx # encoding: [0x62,0xf4,0x75,0x18,0x81,0xcf,0x2d,0xfb]657; NF-NEXT: # imm = 0xFB2D658; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]659; NF-NEXT: movw %cx, d64(%rip) # encoding: [0x66,0x89,0x0d,A,A,A,A]660; NF-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte661; NF-NEXT: retq # encoding: [0xc3]662 %xor = xor i16 1234, -1663 %v0 = or i16 %a, %xor ; 0xff << 50664 %v1 = icmp eq i16 %v0, 0665 store i16 %v0, ptr @d64666 ret i1 %v1667}668 669define i1 @orflag32ri(i32 %a) {670; CHECK-LABEL: orflag32ri:671; CHECK: # %bb.0:672; CHECK-NEXT: orl $123456, %edi # EVEX TO LEGACY Compression encoding: [0x81,0xcf,0x40,0xe2,0x01,0x00]673; CHECK-NEXT: # imm = 0x1E240674; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]675; CHECK-NEXT: movl %edi, d64(%rip) # encoding: [0x89,0x3d,A,A,A,A]676; CHECK-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte677; CHECK-NEXT: retq # encoding: [0xc3]678;679; NF-LABEL: orflag32ri:680; NF: # %bb.0:681; NF-NEXT: orl $123456, %edi # EVEX TO LEGACY Compression encoding: [0x81,0xcf,0x40,0xe2,0x01,0x00]682; NF-NEXT: # imm = 0x1E240683; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]684; NF-NEXT: movl %edi, d64(%rip) # encoding: [0x89,0x3d,A,A,A,A]685; NF-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte686; NF-NEXT: retq # encoding: [0xc3]687 %v0 = or i32 %a, 123456 ; 0xff << 50688 %v1 = icmp eq i32 %v0, 0689 store i32 %v0, ptr @d64690 ret i1 %v1691}692 693define i1 @orflag64ri(i64 %a) {694; CHECK-LABEL: orflag64ri:695; CHECK: # %bb.0:696; CHECK-NEXT: orq $123456, %rdi # EVEX TO LEGACY Compression encoding: [0x48,0x81,0xcf,0x40,0xe2,0x01,0x00]697; CHECK-NEXT: # imm = 0x1E240698; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]699; CHECK-NEXT: movq %rdi, d64(%rip) # encoding: [0x48,0x89,0x3d,A,A,A,A]700; CHECK-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte701; CHECK-NEXT: retq # encoding: [0xc3]702;703; NF-LABEL: orflag64ri:704; NF: # %bb.0:705; NF-NEXT: orq $123456, %rdi # EVEX TO LEGACY Compression encoding: [0x48,0x81,0xcf,0x40,0xe2,0x01,0x00]706; NF-NEXT: # imm = 0x1E240707; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]708; NF-NEXT: movq %rdi, d64(%rip) # encoding: [0x48,0x89,0x3d,A,A,A,A]709; NF-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte710; NF-NEXT: retq # encoding: [0xc3]711 %v0 = or i64 %a, 123456 ; 0xff << 50712 %v1 = icmp eq i64 %v0, 0713 store i64 %v0, ptr @d64714 ret i1 %v1715}716 717define i1 @orflag16ri8(i16 %a) {718; CHECK-LABEL: orflag16ri8:719; CHECK: # %bb.0:720; CHECK-NEXT: orw $-124, %di, %cx # encoding: [0x62,0xf4,0x75,0x18,0x83,0xcf,0x84]721; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]722; CHECK-NEXT: movw %cx, d64(%rip) # encoding: [0x66,0x89,0x0d,A,A,A,A]723; CHECK-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte724; CHECK-NEXT: retq # encoding: [0xc3]725;726; NF-LABEL: orflag16ri8:727; NF: # %bb.0:728; NF-NEXT: orw $-124, %di, %cx # encoding: [0x62,0xf4,0x75,0x18,0x83,0xcf,0x84]729; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]730; NF-NEXT: movw %cx, d64(%rip) # encoding: [0x66,0x89,0x0d,A,A,A,A]731; NF-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte732; NF-NEXT: retq # encoding: [0xc3]733 %xor = xor i16 123, -1734 %v0 = or i16 %a, %xor ; 0xff << 50735 %v1 = icmp eq i16 %v0, 0736 store i16 %v0, ptr @d64737 ret i1 %v1738}739 740define i1 @orflag32ri8(i32 %a) {741; CHECK-LABEL: orflag32ri8:742; CHECK: # %bb.0:743; CHECK-NEXT: orl $123, %edi # EVEX TO LEGACY Compression encoding: [0x83,0xcf,0x7b]744; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]745; CHECK-NEXT: movl %edi, d64(%rip) # encoding: [0x89,0x3d,A,A,A,A]746; CHECK-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte747; CHECK-NEXT: retq # encoding: [0xc3]748;749; NF-LABEL: orflag32ri8:750; NF: # %bb.0:751; NF-NEXT: orl $123, %edi # EVEX TO LEGACY Compression encoding: [0x83,0xcf,0x7b]752; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]753; NF-NEXT: movl %edi, d64(%rip) # encoding: [0x89,0x3d,A,A,A,A]754; NF-NEXT: # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte755; NF-NEXT: retq # encoding: [0xc3]756 %v0 = or i32 %a, 123 ; 0xff << 50757 %v1 = icmp eq i32 %v0, 0758 store i32 %v0, ptr @d64759 ret i1 %v1760}761 762define i1 @orflag64ri8(i64 %a) {763; CHECK-LABEL: orflag64ri8:764; CHECK: # %bb.0:765; CHECK-NEXT: orq $123, %rdi # EVEX TO LEGACY Compression encoding: [0x48,0x83,0xcf,0x7b]766; CHECK-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]767; CHECK-NEXT: movq %rdi, d64(%rip) # encoding: [0x48,0x89,0x3d,A,A,A,A]768; CHECK-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte769; CHECK-NEXT: retq # encoding: [0xc3]770;771; NF-LABEL: orflag64ri8:772; NF: # %bb.0:773; NF-NEXT: orq $123, %rdi # EVEX TO LEGACY Compression encoding: [0x48,0x83,0xcf,0x7b]774; NF-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]775; NF-NEXT: movq %rdi, d64(%rip) # encoding: [0x48,0x89,0x3d,A,A,A,A]776; NF-NEXT: # fixup A - offset: 3, value: d64, kind: reloc_riprel_4byte777; NF-NEXT: retq # encoding: [0xc3]778 %v0 = or i64 %a, 123 ; 0xff << 50779 %v1 = icmp eq i64 %v0, 0780 store i64 %v0, ptr @d64781 ret i1 %v1782}783 784define void @or8mr_legacy(ptr %a, i8 noundef %b) {785; CHECK-LABEL: or8mr_legacy:786; CHECK: # %bb.0: # %entry787; CHECK-NEXT: orb %sil, (%rdi) # encoding: [0x40,0x08,0x37]788; CHECK-NEXT: retq # encoding: [0xc3]789;790; NF-LABEL: or8mr_legacy:791; NF: # %bb.0: # %entry792; NF-NEXT: orb %sil, (%rdi) # encoding: [0x40,0x08,0x37]793; NF-NEXT: retq # encoding: [0xc3]794entry:795 %t= load i8, ptr %a796 %or = or i8 %t, %b797 store i8 %or, ptr %a798 ret void799}800 801define void @or16mr_legacy(ptr %a, i16 noundef %b) {802; CHECK-LABEL: or16mr_legacy:803; CHECK: # %bb.0: # %entry804; CHECK-NEXT: orw %si, (%rdi) # encoding: [0x66,0x09,0x37]805; CHECK-NEXT: retq # encoding: [0xc3]806;807; NF-LABEL: or16mr_legacy:808; NF: # %bb.0: # %entry809; NF-NEXT: orw %si, (%rdi) # encoding: [0x66,0x09,0x37]810; NF-NEXT: retq # encoding: [0xc3]811entry:812 %t= load i16, ptr %a813 %or = or i16 %t, %b814 store i16 %or, ptr %a815 ret void816}817 818define void @or32mr_legacy(ptr %a, i32 noundef %b) {819; CHECK-LABEL: or32mr_legacy:820; CHECK: # %bb.0: # %entry821; CHECK-NEXT: orl %esi, (%rdi) # encoding: [0x09,0x37]822; CHECK-NEXT: retq # encoding: [0xc3]823;824; NF-LABEL: or32mr_legacy:825; NF: # %bb.0: # %entry826; NF-NEXT: orl %esi, (%rdi) # encoding: [0x09,0x37]827; NF-NEXT: retq # encoding: [0xc3]828entry:829 %t= load i32, ptr %a830 %or = or i32 %t, %b831 store i32 %or, ptr %a832 ret void833}834 835define void @or64mr_legacy(ptr %a, i64 noundef %b) {836; CHECK-LABEL: or64mr_legacy:837; CHECK: # %bb.0: # %entry838; CHECK-NEXT: orq %rsi, (%rdi) # encoding: [0x48,0x09,0x37]839; CHECK-NEXT: retq # encoding: [0xc3]840;841; NF-LABEL: or64mr_legacy:842; NF: # %bb.0: # %entry843; NF-NEXT: orq %rsi, (%rdi) # encoding: [0x48,0x09,0x37]844; NF-NEXT: retq # encoding: [0xc3]845entry:846 %t= load i64, ptr %a847 %or = or i64 %t, %b848 store i64 %or, ptr %a849 ret void850}851 852define void @or8mi_legacy(ptr %a) {853; CHECK-LABEL: or8mi_legacy:854; CHECK: # %bb.0: # %entry855; CHECK-NEXT: orb $123, (%rdi) # encoding: [0x80,0x0f,0x7b]856; CHECK-NEXT: retq # encoding: [0xc3]857;858; NF-LABEL: or8mi_legacy:859; NF: # %bb.0: # %entry860; NF-NEXT: orb $123, (%rdi) # encoding: [0x80,0x0f,0x7b]861; NF-NEXT: retq # encoding: [0xc3]862entry:863 %t= load i8, ptr %a864 %or = or i8 %t, 123865 store i8 %or, ptr %a866 ret void867}868 869define void @or16mi_legacy(ptr %a) {870; CHECK-LABEL: or16mi_legacy:871; CHECK: # %bb.0: # %entry872; CHECK-NEXT: orw $1234, (%rdi) # encoding: [0x66,0x81,0x0f,0xd2,0x04]873; CHECK-NEXT: # imm = 0x4D2874; CHECK-NEXT: retq # encoding: [0xc3]875;876; NF-LABEL: or16mi_legacy:877; NF: # %bb.0: # %entry878; NF-NEXT: orw $1234, (%rdi) # encoding: [0x66,0x81,0x0f,0xd2,0x04]879; NF-NEXT: # imm = 0x4D2880; NF-NEXT: retq # encoding: [0xc3]881entry:882 %t= load i16, ptr %a883 %or = or i16 %t, 1234884 store i16 %or, ptr %a885 ret void886}887 888define void @or32mi_legacy(ptr %a) {889; CHECK-LABEL: or32mi_legacy:890; CHECK: # %bb.0: # %entry891; CHECK-NEXT: orl $123456, (%rdi) # encoding: [0x81,0x0f,0x40,0xe2,0x01,0x00]892; CHECK-NEXT: # imm = 0x1E240893; CHECK-NEXT: retq # encoding: [0xc3]894;895; NF-LABEL: or32mi_legacy:896; NF: # %bb.0: # %entry897; NF-NEXT: orl $123456, (%rdi) # encoding: [0x81,0x0f,0x40,0xe2,0x01,0x00]898; NF-NEXT: # imm = 0x1E240899; NF-NEXT: retq # encoding: [0xc3]900entry:901 %t= load i32, ptr %a902 %or = or i32 %t, 123456903 store i32 %or, ptr %a904 ret void905}906 907define void @or64mi_legacy(ptr %a) {908; CHECK-LABEL: or64mi_legacy:909; CHECK: # %bb.0: # %entry910; CHECK-NEXT: orl $123456, (%rdi) # encoding: [0x81,0x0f,0x40,0xe2,0x01,0x00]911; CHECK-NEXT: # imm = 0x1E240912; CHECK-NEXT: retq # encoding: [0xc3]913;914; NF-LABEL: or64mi_legacy:915; NF: # %bb.0: # %entry916; NF-NEXT: orl $123456, (%rdi) # encoding: [0x81,0x0f,0x40,0xe2,0x01,0x00]917; NF-NEXT: # imm = 0x1E240918; NF-NEXT: retq # encoding: [0xc3]919entry:920 %t= load i64, ptr %a921 %or = or i64 %t, 123456922 store i64 %or, ptr %a923 ret void924}925