135 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+ndd -verify-machineinstrs | FileCheck %s3 4define i8 @not8r(i8 noundef %a) {5; CHECK-LABEL: not8r:6; CHECK: # %bb.0: # %entry7; CHECK-NEXT: notb %dil, %al8; CHECK-NEXT: retq9entry:10 %not = xor i8 %a, -111 ret i8 %not12}13 14define i16 @not16r(i16 noundef %a) {15; CHECK-LABEL: not16r:16; CHECK: # %bb.0: # %entry17; CHECK-NEXT: notw %di, %ax18; CHECK-NEXT: retq19entry:20 %not = xor i16 %a, -121 ret i16 %not22}23 24define i32 @not32r(i32 noundef %a) {25; CHECK-LABEL: not32r:26; CHECK: # %bb.0: # %entry27; CHECK-NEXT: notl %edi, %eax28; CHECK-NEXT: retq29entry:30 %not = xor i32 %a, -131 ret i32 %not32}33 34define i64 @not64r(i64 noundef %a) {35; CHECK-LABEL: not64r:36; CHECK: # %bb.0: # %entry37; CHECK-NEXT: notq %rdi, %rax38; CHECK-NEXT: retq39entry:40 %not = xor i64 %a, -141 ret i64 %not42}43 44define i8 @not8m(ptr %ptr) {45; CHECK-LABEL: not8m:46; CHECK: # %bb.0: # %entry47; CHECK-NEXT: notb (%rdi), %al48; CHECK-NEXT: retq49entry:50 %a = load i8, ptr %ptr51 %not = xor i8 %a, -152 ret i8 %not53}54 55define i16 @not16m(ptr %ptr) {56; CHECK-LABEL: not16m:57; CHECK: # %bb.0: # %entry58; CHECK-NEXT: notw (%rdi), %ax59; CHECK-NEXT: retq60entry:61 %a = load i16, ptr %ptr62 %not = xor i16 %a, -163 ret i16 %not64}65 66define i32 @not32m(ptr %ptr) {67; CHECK-LABEL: not32m:68; CHECK: # %bb.0: # %entry69; CHECK-NEXT: notl (%rdi), %eax70; CHECK-NEXT: retq71entry:72 %a = load i32, ptr %ptr73 %not = xor i32 %a, -174 ret i32 %not75}76 77define i64 @not64m(ptr %ptr) {78; CHECK-LABEL: not64m:79; CHECK: # %bb.0: # %entry80; CHECK-NEXT: notq (%rdi), %rax81; CHECK-NEXT: retq82entry:83 %a = load i64, ptr %ptr84 %not = xor i64 %a, -185 ret i64 %not86}87 88define void @not8m_legacy(ptr %ptr) {89; CHECK-LABEL: not8m_legacy:90; CHECK: # %bb.0: # %entry91; CHECK-NEXT: notb (%rdi)92; CHECK-NEXT: retq93entry:94 %a = load i8, ptr %ptr95 %not = xor i8 %a, -196 store i8 %not, ptr %ptr97 ret void98}99 100define void @not16m_legacy(ptr %ptr) {101; CHECK-LABEL: not16m_legacy:102; CHECK: # %bb.0: # %entry103; CHECK-NEXT: notw (%rdi)104; CHECK-NEXT: retq105entry:106 %a = load i16, ptr %ptr107 %not = xor i16 %a, -1108 store i16 %not, ptr %ptr109 ret void110}111 112define void @not32m_legacy(ptr %ptr) {113; CHECK-LABEL: not32m_legacy:114; CHECK: # %bb.0: # %entry115; CHECK-NEXT: notl (%rdi)116; CHECK-NEXT: retq117entry:118 %a = load i32, ptr %ptr119 %not = xor i32 %a, -1120 store i32 %not, ptr %ptr121 ret void122}123 124define void @not64m_legacy(ptr %ptr) {125; CHECK-LABEL: not64m_legacy:126; CHECK: # %bb.0: # %entry127; CHECK-NEXT: notq (%rdi)128; CHECK-NEXT: retq129entry:130 %a = load i64, ptr %ptr131 %not = xor i64 %a, -1132 store i64 %not, ptr %ptr133 ret void134}135