brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · f3308c4 Raw
159 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=mips64-elf -O0 -mcpu=mips64r2 -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=MIPS3; RUN: llc -mtriple=mips64el-elf -O0 -mcpu=mips64r2 -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=MIPS4; RUN: llc -mtriple=mips64-elf -O0 -mcpu=mips64r6 -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=MIPSR65; RUN: llc -mtriple=mips64el-elf -O0 -mcpu=mips64r6 -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=MIPSR66 7define i64 @test_max(ptr nocapture %ptr, i64 signext %val) {8; MIPS-LABEL: test_max:9; MIPS:       # %bb.0: # %entry10; MIPS-NEXT:    sync11; MIPS-NEXT:  .LBB0_1: # %entry12; MIPS-NEXT:    # =>This Inner Loop Header: Depth=113; MIPS-NEXT:    lld $2, 0($4)14; MIPS-NEXT:    slt $3, $2, $515; MIPS-NEXT:    move $1, $216; MIPS-NEXT:    movn $1, $5, $317; MIPS-NEXT:    scd $1, 0($4)18; MIPS-NEXT:    beqz $1, .LBB0_119; MIPS-NEXT:    nop20; MIPS-NEXT:  # %bb.2: # %entry21; MIPS-NEXT:    sync22; MIPS-NEXT:    jr $ra23; MIPS-NEXT:    nop24;25; MIPSR6-LABEL: test_max:26; MIPSR6:       # %bb.0: # %entry27; MIPSR6-NEXT:    sync28; MIPSR6-NEXT:  .LBB0_1: # %entry29; MIPSR6-NEXT:    # =>This Inner Loop Header: Depth=130; MIPSR6-NEXT:    lld $2, 0($4)31; MIPSR6-NEXT:    slt $3, $2, $532; MIPSR6-NEXT:    seleqz $1, $2, $333; MIPSR6-NEXT:    selnez $3, $5, $334; MIPSR6-NEXT:    or $1, $1, $335; MIPSR6-NEXT:    scd $1, 0($4)36; MIPSR6-NEXT:    beqzc $1, .LBB0_137; MIPSR6-NEXT:  # %bb.2: # %entry38; MIPSR6-NEXT:    sync39; MIPSR6-NEXT:    jrc $ra40entry:41  %0 = atomicrmw max ptr %ptr, i64 %val seq_cst42  ret i64 %043}44 45define i64 @test_min(ptr nocapture %ptr, i64 signext %val) {46; MIPS-LABEL: test_min:47; MIPS:       # %bb.0: # %entry48; MIPS-NEXT:    sync49; MIPS-NEXT:  .LBB1_1: # %entry50; MIPS-NEXT:    # =>This Inner Loop Header: Depth=151; MIPS-NEXT:    lld $2, 0($4)52; MIPS-NEXT:    slt $3, $2, $553; MIPS-NEXT:    move $1, $254; MIPS-NEXT:    movz $1, $5, $355; MIPS-NEXT:    scd $1, 0($4)56; MIPS-NEXT:    beqz $1, .LBB1_157; MIPS-NEXT:    nop58; MIPS-NEXT:  # %bb.2: # %entry59; MIPS-NEXT:    sync60; MIPS-NEXT:    jr $ra61; MIPS-NEXT:    nop62;63; MIPSR6-LABEL: test_min:64; MIPSR6:       # %bb.0: # %entry65; MIPSR6-NEXT:    sync66; MIPSR6-NEXT:  .LBB1_1: # %entry67; MIPSR6-NEXT:    # =>This Inner Loop Header: Depth=168; MIPSR6-NEXT:    lld $2, 0($4)69; MIPSR6-NEXT:    slt $3, $2, $570; MIPSR6-NEXT:    selnez $1, $2, $371; MIPSR6-NEXT:    seleqz $3, $5, $372; MIPSR6-NEXT:    or $1, $1, $373; MIPSR6-NEXT:    scd $1, 0($4)74; MIPSR6-NEXT:    beqzc $1, .LBB1_175; MIPSR6-NEXT:  # %bb.2: # %entry76; MIPSR6-NEXT:    sync77; MIPSR6-NEXT:    jrc $ra78entry:79  %0 = atomicrmw min ptr %ptr, i64 %val seq_cst80  ret i64 %081}82 83define i64 @test_umax(ptr nocapture %ptr, i64 zeroext %val) {84; MIPS-LABEL: test_umax:85; MIPS:       # %bb.0: # %entry86; MIPS-NEXT:    sync87; MIPS-NEXT:  .LBB2_1: # %entry88; MIPS-NEXT:    # =>This Inner Loop Header: Depth=189; MIPS-NEXT:    lld $2, 0($4)90; MIPS-NEXT:    sltu $3, $2, $591; MIPS-NEXT:    move $1, $292; MIPS-NEXT:    movn $1, $5, $393; MIPS-NEXT:    scd $1, 0($4)94; MIPS-NEXT:    beqz $1, .LBB2_195; MIPS-NEXT:    nop96; MIPS-NEXT:  # %bb.2: # %entry97; MIPS-NEXT:    sync98; MIPS-NEXT:    jr $ra99; MIPS-NEXT:    nop100;101; MIPSR6-LABEL: test_umax:102; MIPSR6:       # %bb.0: # %entry103; MIPSR6-NEXT:    sync104; MIPSR6-NEXT:  .LBB2_1: # %entry105; MIPSR6-NEXT:    # =>This Inner Loop Header: Depth=1106; MIPSR6-NEXT:    lld $2, 0($4)107; MIPSR6-NEXT:    sltu $3, $2, $5108; MIPSR6-NEXT:    seleqz $1, $2, $3109; MIPSR6-NEXT:    selnez $3, $5, $3110; MIPSR6-NEXT:    or $1, $1, $3111; MIPSR6-NEXT:    scd $1, 0($4)112; MIPSR6-NEXT:    beqzc $1, .LBB2_1113; MIPSR6-NEXT:  # %bb.2: # %entry114; MIPSR6-NEXT:    sync115; MIPSR6-NEXT:    jrc $ra116entry:117  %0 = atomicrmw umax ptr %ptr, i64 %val seq_cst118  ret i64 %0119}120 121define i64 @test_umin(ptr nocapture %ptr, i64 zeroext %val) {122; MIPS-LABEL: test_umin:123; MIPS:       # %bb.0: # %entry124; MIPS-NEXT:    sync125; MIPS-NEXT:  .LBB3_1: # %entry126; MIPS-NEXT:    # =>This Inner Loop Header: Depth=1127; MIPS-NEXT:    lld $2, 0($4)128; MIPS-NEXT:    sltu $3, $2, $5129; MIPS-NEXT:    move $1, $2130; MIPS-NEXT:    movz $1, $5, $3131; MIPS-NEXT:    scd $1, 0($4)132; MIPS-NEXT:    beqz $1, .LBB3_1133; MIPS-NEXT:    nop134; MIPS-NEXT:  # %bb.2: # %entry135; MIPS-NEXT:    sync136; MIPS-NEXT:    jr $ra137; MIPS-NEXT:    nop138;139; MIPSR6-LABEL: test_umin:140; MIPSR6:       # %bb.0: # %entry141; MIPSR6-NEXT:    sync142; MIPSR6-NEXT:  .LBB3_1: # %entry143; MIPSR6-NEXT:    # =>This Inner Loop Header: Depth=1144; MIPSR6-NEXT:    lld $2, 0($4)145; MIPSR6-NEXT:    sltu $3, $2, $5146; MIPSR6-NEXT:    selnez $1, $2, $3147; MIPSR6-NEXT:    seleqz $3, $5, $3148; MIPSR6-NEXT:    or $1, $1, $3149; MIPSR6-NEXT:    scd $1, 0($4)150; MIPSR6-NEXT:    beqzc $1, .LBB3_1151; MIPSR6-NEXT:  # %bb.2: # %entry152; MIPSR6-NEXT:    sync153; MIPSR6-NEXT:    jrc $ra154entry:155  %0 = atomicrmw umin ptr %ptr, i64 %val seq_cst156  ret i64 %0157}158 159