brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.2 KiB · a4b54d5 Raw
197 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; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+ndd,nf -verify-machineinstrs | FileCheck --check-prefix=NF %s4; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+ndd,nf -x86-enable-apx-for-relocation=true -verify-machineinstrs | FileCheck --check-prefix=NF %s5 6define i8 @dec8r(i8 noundef %a) {7; CHECK-LABEL: dec8r:8; CHECK:       # %bb.0: # %entry9; CHECK-NEXT:    decb %dil, %al10; CHECK-NEXT:    retq11;12; NF-LABEL: dec8r:13; NF:       # %bb.0: # %entry14; NF-NEXT:    {nf} decb %dil, %al15; NF-NEXT:    retq16entry:17  %dec = sub i8 %a, 118  ret i8 %dec19}20 21define i16 @dec16r(i16 noundef %a) {22; CHECK-LABEL: dec16r:23; CHECK:       # %bb.0: # %entry24; CHECK-NEXT:    decw %di, %ax25; CHECK-NEXT:    retq26;27; NF-LABEL: dec16r:28; NF:       # %bb.0: # %entry29; NF-NEXT:    {nf} decw %di, %ax30; NF-NEXT:    retq31entry:32  %dec = sub i16 %a, 133  ret i16 %dec34}35 36define i32 @dec32r(i32 noundef %a) {37; CHECK-LABEL: dec32r:38; CHECK:       # %bb.0: # %entry39; CHECK-NEXT:    decl %edi, %eax40; CHECK-NEXT:    retq41;42; NF-LABEL: dec32r:43; NF:       # %bb.0: # %entry44; NF-NEXT:    {nf} decl %edi, %eax45; NF-NEXT:    retq46entry:47  %dec = sub i32 %a, 148  ret i32 %dec49}50 51define i64 @dec64r(i64 noundef %a) {52; CHECK-LABEL: dec64r:53; CHECK:       # %bb.0: # %entry54; CHECK-NEXT:    decq %rdi, %rax55; CHECK-NEXT:    retq56;57; NF-LABEL: dec64r:58; NF:       # %bb.0: # %entry59; NF-NEXT:    {nf} decq %rdi, %rax60; NF-NEXT:    retq61entry:62  %dec = sub i64 %a, 163  ret i64 %dec64}65 66define i8 @dec8m(ptr %ptr) {67; CHECK-LABEL: dec8m:68; CHECK:       # %bb.0: # %entry69; CHECK-NEXT:    decb (%rdi), %al70; CHECK-NEXT:    retq71;72; NF-LABEL: dec8m:73; NF:       # %bb.0: # %entry74; NF-NEXT:    {nf} decb (%rdi), %al75; NF-NEXT:    retq76entry:77  %a = load i8, ptr %ptr78  %dec = sub i8 %a, 179  ret i8 %dec80}81 82define i16 @dec16m(ptr %ptr) {83; CHECK-LABEL: dec16m:84; CHECK:       # %bb.0: # %entry85; CHECK-NEXT:    decw (%rdi), %ax86; CHECK-NEXT:    retq87;88; NF-LABEL: dec16m:89; NF:       # %bb.0: # %entry90; NF-NEXT:    {nf} decw (%rdi), %ax91; NF-NEXT:    retq92entry:93  %a = load i16, ptr %ptr94  %dec = sub i16 %a, 195  ret i16 %dec96}97 98define i32 @dec32m(ptr %ptr) {99; CHECK-LABEL: dec32m:100; CHECK:       # %bb.0: # %entry101; CHECK-NEXT:    decl (%rdi), %eax102; CHECK-NEXT:    retq103;104; NF-LABEL: dec32m:105; NF:       # %bb.0: # %entry106; NF-NEXT:    {nf} decl (%rdi), %eax107; NF-NEXT:    retq108entry:109  %a = load i32, ptr %ptr110  %dec = sub i32 %a, 1111  ret i32 %dec112}113 114define i64 @dec64m(ptr %ptr) {115; CHECK-LABEL: dec64m:116; CHECK:       # %bb.0: # %entry117; CHECK-NEXT:    decq (%rdi), %rax118; CHECK-NEXT:    retq119;120; NF-LABEL: dec64m:121; NF:       # %bb.0: # %entry122; NF-NEXT:    {nf} decq (%rdi), %rax123; NF-NEXT:    retq124entry:125  %a = load i64, ptr %ptr126  %dec = sub i64 %a, 1127  ret i64 %dec128}129 130define void @dec8m_legacy(ptr %ptr) {131; CHECK-LABEL: dec8m_legacy:132; CHECK:       # %bb.0: # %entry133; CHECK-NEXT:    decb (%rdi)134; CHECK-NEXT:    retq135;136; NF-LABEL: dec8m_legacy:137; NF:       # %bb.0: # %entry138; NF-NEXT:    decb (%rdi)139; NF-NEXT:    retq140entry:141  %a = load i8, ptr %ptr142  %dec = sub i8 %a, 1143  store i8 %dec, ptr %ptr144  ret void145}146 147define void @dec16m_legacy(ptr %ptr) {148; CHECK-LABEL: dec16m_legacy:149; CHECK:       # %bb.0: # %entry150; CHECK-NEXT:    decw (%rdi)151; CHECK-NEXT:    retq152;153; NF-LABEL: dec16m_legacy:154; NF:       # %bb.0: # %entry155; NF-NEXT:    decw (%rdi)156; NF-NEXT:    retq157entry:158  %a = load i16, ptr %ptr159  %dec = sub i16 %a, 1160  store i16 %dec, ptr %ptr161  ret void162}163 164define void @dec32m_legacy(ptr %ptr) {165; CHECK-LABEL: dec32m_legacy:166; CHECK:       # %bb.0: # %entry167; CHECK-NEXT:    decl (%rdi)168; CHECK-NEXT:    retq169;170; NF-LABEL: dec32m_legacy:171; NF:       # %bb.0: # %entry172; NF-NEXT:    decl (%rdi)173; NF-NEXT:    retq174entry:175  %a = load i32, ptr %ptr176  %dec = sub i32 %a, 1177  store i32 %dec, ptr %ptr178  ret void179}180 181define void @dec64m_legacy(ptr %ptr) {182; CHECK-LABEL: dec64m_legacy:183; CHECK:       # %bb.0: # %entry184; CHECK-NEXT:    decq (%rdi)185; CHECK-NEXT:    retq186;187; NF-LABEL: dec64m_legacy:188; NF:       # %bb.0: # %entry189; NF-NEXT:    decq (%rdi)190; NF-NEXT:    retq191entry:192  %a = load i64, ptr %ptr193  %dec = sub i64 %a, 1194  store i64 %dec, ptr %ptr195  ret void196}197