brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.1 KiB · c63150e Raw
239 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s3 4define i1 @lock_add_sete(ptr %0, i32 %1) nounwind {5; CHECK-LABEL: lock_add_sete:6; CHECK:       # %bb.0:7; CHECK-NEXT:    lock addl %esi, (%rdi)8; CHECK-NEXT:    sete %al9; CHECK-NEXT:    retq10  %3 = atomicrmw add ptr %0, i32 %1 seq_cst, align 411  %4 = sub i32 0, %112  %5 = icmp eq i32 %3, %413  ret i1 %514}15 16define i1 @lock_add_sets(ptr %0, i32 %1) nounwind {17; CHECK-LABEL: lock_add_sets:18; CHECK:       # %bb.0:19; CHECK-NEXT:    lock addl %esi, (%rdi)20; CHECK-NEXT:    sets %al21; CHECK-NEXT:    retq22  %3 = atomicrmw add ptr %0, i32 %1 seq_cst, align 423  %4 = add i32 %3, %124  %5 = icmp slt i32 %4, 025  ret i1 %526}27 28define i1 @lock_sub_sete(ptr %0, i32 %1) nounwind {29; CHECK-LABEL: lock_sub_sete:30; CHECK:       # %bb.0:31; CHECK-NEXT:    lock subl %esi, (%rdi)32; CHECK-NEXT:    sete %al33; CHECK-NEXT:    retq34  %3 = atomicrmw sub ptr %0, i32 %1 seq_cst, align 435  %4 = icmp eq i32 %3, %136  ret i1 %437}38 39define i1 @lock_sub_sets(ptr %0, i32 %1) nounwind {40; CHECK-LABEL: lock_sub_sets:41; CHECK:       # %bb.0:42; CHECK-NEXT:    lock subl %esi, (%rdi)43; CHECK-NEXT:    sets %al44; CHECK-NEXT:    retq45  %3 = atomicrmw sub ptr %0, i32 %1 seq_cst, align 446  %4 = sub i32 %3, %147  %5 = icmp slt i32 %4, 048  ret i1 %549}50 51define i1 @lock_or_sete(ptr %0, i32 %1) nounwind {52; CHECK-LABEL: lock_or_sete:53; CHECK:       # %bb.0:54; CHECK-NEXT:    lock orl %esi, (%rdi)55; CHECK-NEXT:    sete %al56; CHECK-NEXT:    retq57  %3 = atomicrmw or ptr %0, i32 %1 seq_cst, align 458  %4 = or i32 %3, %159  %5 = icmp eq i32 %4, 060  ret i1 %561}62 63define i1 @lock_or_sets(ptr %0, i32 %1) nounwind {64; CHECK-LABEL: lock_or_sets:65; CHECK:       # %bb.0:66; CHECK-NEXT:    lock orl %esi, (%rdi)67; CHECK-NEXT:    sets %al68; CHECK-NEXT:    retq69  %3 = atomicrmw or ptr %0, i32 %1 seq_cst, align 470  %4 = or i32 %3, %171  %5 = icmp slt i32 %4, 072  ret i1 %573}74 75define i1 @lock_and_sete(ptr %0, i32 %1) nounwind {76; CHECK-LABEL: lock_and_sete:77; CHECK:       # %bb.0:78; CHECK-NEXT:    lock andl %esi, (%rdi)79; CHECK-NEXT:    sete %al80; CHECK-NEXT:    retq81  %3 = atomicrmw and ptr %0, i32 %1 seq_cst, align 482  %4 = and i32 %3, %183  %5 = icmp eq i32 %4, 084  ret i1 %585}86 87define i1 @lock_and_sets(ptr %0, i32 %1) nounwind {88; CHECK-LABEL: lock_and_sets:89; CHECK:       # %bb.0:90; CHECK-NEXT:    lock andl %esi, (%rdi)91; CHECK-NEXT:    sets %al92; CHECK-NEXT:    retq93  %3 = atomicrmw and ptr %0, i32 %1 seq_cst, align 494  %4 = and i32 %3, %195  %5 = icmp slt i32 %4, 096  ret i1 %597}98 99define i1 @lock_xor_sete(ptr %0, i32 %1) nounwind {100; CHECK-LABEL: lock_xor_sete:101; CHECK:       # %bb.0:102; CHECK-NEXT:    lock xorl %esi, (%rdi)103; CHECK-NEXT:    sete %al104; CHECK-NEXT:    retq105  %3 = atomicrmw xor ptr %0, i32 %1 seq_cst, align 4106  %4 = icmp eq i32 %3, %1107  ret i1 %4108}109 110define i1 @lock_xor_sets(ptr %0, i32 %1) nounwind {111; CHECK-LABEL: lock_xor_sets:112; CHECK:       # %bb.0:113; CHECK-NEXT:    lock xorl %esi, (%rdi)114; CHECK-NEXT:    sets %al115; CHECK-NEXT:    retq116  %3 = atomicrmw xor ptr %0, i32 %1 seq_cst, align 4117  %4 = xor i32 %3, %1118  %5 = icmp slt i32 %4, 0119  ret i1 %5120}121 122define i1 @lock_add_setne(ptr %0, i32 %1) nounwind {123; CHECK-LABEL: lock_add_setne:124; CHECK:       # %bb.0:125; CHECK-NEXT:    lock addl %esi, (%rdi)126; CHECK-NEXT:    setne %al127; CHECK-NEXT:    retq128  %3 = atomicrmw add ptr %0, i32 %1 seq_cst, align 4129  %4 = sub i32 0, %1130  %5 = icmp ne i32 %3, %4131  ret i1 %5132}133 134define i1 @lock_add_setns(ptr %0, i32 %1) nounwind {135; CHECK-LABEL: lock_add_setns:136; CHECK:       # %bb.0:137; CHECK-NEXT:    lock addl %esi, (%rdi)138; CHECK-NEXT:    setns %al139; CHECK-NEXT:    retq140  %3 = atomicrmw add ptr %0, i32 %1 seq_cst, align 4141  %4 = add i32 %3, %1142  %5 = icmp sgt i32 %4, -1143  ret i1 %5144}145 146define i1 @lock_sub_setne(ptr %0, i32 %1) nounwind {147; CHECK-LABEL: lock_sub_setne:148; CHECK:       # %bb.0:149; CHECK-NEXT:    lock subl %esi, (%rdi)150; CHECK-NEXT:    setne %al151; CHECK-NEXT:    retq152  %3 = atomicrmw sub ptr %0, i32 %1 seq_cst, align 4153  %4 = icmp ne i32 %3, %1154  ret i1 %4155}156 157define i1 @lock_sub_setns(ptr %0, i32 %1) nounwind {158; CHECK-LABEL: lock_sub_setns:159; CHECK:       # %bb.0:160; CHECK-NEXT:    lock subl %esi, (%rdi)161; CHECK-NEXT:    setns %al162; CHECK-NEXT:    retq163  %3 = atomicrmw sub ptr %0, i32 %1 seq_cst, align 4164  %4 = sub i32 %3, %1165  %5 = icmp sgt i32 %4, -1166  ret i1 %5167}168 169define i1 @lock_or_setne(ptr %0, i32 %1) nounwind {170; CHECK-LABEL: lock_or_setne:171; CHECK:       # %bb.0:172; CHECK-NEXT:    lock orl %esi, (%rdi)173; CHECK-NEXT:    setne %al174; CHECK-NEXT:    retq175  %3 = atomicrmw or ptr %0, i32 %1 seq_cst, align 4176  %4 = or i32 %3, %1177  %5 = icmp ne i32 %4, 0178  ret i1 %5179}180 181define i1 @lock_or_setns(ptr %0, i32 %1) nounwind {182; CHECK-LABEL: lock_or_setns:183; CHECK:       # %bb.0:184; CHECK-NEXT:    lock orl %esi, (%rdi)185; CHECK-NEXT:    setns %al186; CHECK-NEXT:    retq187  %3 = atomicrmw or ptr %0, i32 %1 seq_cst, align 4188  %4 = or i32 %3, %1189  %5 = icmp sgt i32 %4, -1190  ret i1 %5191}192 193define i1 @lock_and_setne(ptr %0, i32 %1) nounwind {194; CHECK-LABEL: lock_and_setne:195; CHECK:       # %bb.0:196; CHECK-NEXT:    lock andl %esi, (%rdi)197; CHECK-NEXT:    setne %al198; CHECK-NEXT:    retq199  %3 = atomicrmw and ptr %0, i32 %1 seq_cst, align 4200  %4 = and i32 %3, %1201  %5 = icmp ne i32 %4, 0202  ret i1 %5203}204 205define i1 @lock_and_setns(ptr %0, i32 %1) nounwind {206; CHECK-LABEL: lock_and_setns:207; CHECK:       # %bb.0:208; CHECK-NEXT:    lock andl %esi, (%rdi)209; CHECK-NEXT:    setns %al210; CHECK-NEXT:    retq211  %3 = atomicrmw and ptr %0, i32 %1 seq_cst, align 4212  %4 = and i32 %3, %1213  %5 = icmp sgt i32 %4, -1214  ret i1 %5215}216 217define i1 @lock_xor_setne(ptr %0, i32 %1) nounwind {218; CHECK-LABEL: lock_xor_setne:219; CHECK:       # %bb.0:220; CHECK-NEXT:    lock xorl %esi, (%rdi)221; CHECK-NEXT:    setne %al222; CHECK-NEXT:    retq223  %3 = atomicrmw xor ptr %0, i32 %1 seq_cst, align 4224  %4 = icmp ne i32 %3, %1225  ret i1 %4226}227 228define i1 @lock_xor_setns(ptr %0, i32 %1) nounwind {229; CHECK-LABEL: lock_xor_setns:230; CHECK:       # %bb.0:231; CHECK-NEXT:    lock xorl %esi, (%rdi)232; CHECK-NEXT:    setns %al233; CHECK-NEXT:    retq234  %3 = atomicrmw xor ptr %0, i32 %1 seq_cst, align 4235  %4 = xor i32 %3, %1236  %5 = icmp sgt i32 %4, -1237  ret i1 %5238}239