brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.9 KiB · 5405544 Raw
344 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \3; RUN:   --ppc-asm-full-reg-names -mcpu=pwr8 < %s | FileCheck %s4; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \5; RUN:   --ppc-asm-full-reg-names -mcpu=pwr7 < %s | FileCheck %s6; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-aix \7; RUN:   --ppc-asm-full-reg-names -mcpu=pwr8 < %s | FileCheck %s8 9; tdw10declare void @llvm.ppc.tdw(i64 %a, i64 %b, i32 immarg)11define dso_local void @test__tdwlgt(i64 %a, i64 %b) {12; CHECK-LABEL: test__tdwlgt:13; CHECK:       # %bb.0:14; CHECK-NEXT:    tdlgt r3, r415; CHECK-NEXT:    blr16  call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 1)17  ret void18}19 20define dso_local void @test__tdwllt(i64 %a, i64 %b) {21; CHECK-LABEL: test__tdwllt:22; CHECK:       # %bb.0:23; CHECK-NEXT:    tdllt r3, r424; CHECK-NEXT:    blr25  call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 2)26  ret void27}28 29define dso_local void @test__tdw3(i64 %a, i64 %b) {30; CHECK-LABEL: test__tdw3:31; CHECK:       # %bb.0:32; CHECK-NEXT:    td 3, r3, r433; CHECK-NEXT:    blr34  call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 3)35  ret void36}37define dso_local void @test__tdweq(i64 %a, i64 %b) {38; CHECK-LABEL: test__tdweq:39; CHECK:       # %bb.0:40; CHECK-NEXT:    tdeq r3, r441; CHECK-NEXT:    blr42  call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 4)43  ret void44}45 46define dso_local void @test__tdwlge(i64 %a, i64 %b) {47; CHECK-LABEL: test__tdwlge:48; CHECK:       # %bb.0:49; CHECK-NEXT:    td 5, r3, r450; CHECK-NEXT:    blr51  call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 5)52  ret void53}54 55define dso_local void @test__tdwlle(i64 %a, i64 %b) {56; CHECK-LABEL: test__tdwlle:57; CHECK:       # %bb.0:58; CHECK-NEXT:    td 6, r3, r459; CHECK-NEXT:    blr60  call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 6)61  ret void62}63 64define dso_local void @test__tdwgt(i64 %a, i64 %b) {65; CHECK-LABEL: test__tdwgt:66; CHECK:       # %bb.0:67; CHECK-NEXT:    tdgt r3, r468; CHECK-NEXT:    blr69  call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 8)70  ret void71}72 73define dso_local void @test__tdwge(i64 %a, i64 %b) {74; CHECK-LABEL: test__tdwge:75; CHECK:       # %bb.0:76; CHECK-NEXT:    td 12, r3, r477; CHECK-NEXT:    blr78  call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 12)79  ret void80}81 82define dso_local void @test__tdwlt(i64 %a, i64 %b) {83; CHECK-LABEL: test__tdwlt:84; CHECK:       # %bb.0:85; CHECK-NEXT:    tdlt r3, r486; CHECK-NEXT:    blr87  call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 16)88  ret void89}90 91define dso_local void @test__tdwle(i64 %a, i64 %b) {92; CHECK-LABEL: test__tdwle:93; CHECK:       # %bb.0:94; CHECK-NEXT:    td 20, r3, r495; CHECK-NEXT:    blr96  call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 20)97  ret void98}99 100define dso_local void @test__tdwne24(i64 %a, i64 %b) {101; CHECK-LABEL: test__tdwne24:102; CHECK:       # %bb.0:103; CHECK-NEXT:    tdne r3, r4104; CHECK-NEXT:    blr105  call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 24)106  ret void107}108 109define dso_local void @test__tdw31(i64 %a, i64 %b) {110; CHECK-LABEL: test__tdw31:111; CHECK:       # %bb.0:112; CHECK-NEXT:    tdu r3, r4113; CHECK-NEXT:    blr114  call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 31)115  ret void116}117 118define dso_local void @test__tdw_no_match(i64 %a, i64 %b) {119; CHECK-LABEL: test__tdw_no_match:120; CHECK:       # %bb.0:121; CHECK-NEXT:    td 13, r3, r4122; CHECK-NEXT:    blr123  call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 13)124  ret void125}126 127; tdw -> tdi128define dso_local void @test__tdi_reg_imm_boundary(i64 %a) {129; CHECK-LABEL: test__tdi_reg_imm_boundary:130; CHECK:       # %bb.0:131; CHECK-NEXT:    tdi 3, r3, 32767132; CHECK-NEXT:    blr133  call void @llvm.ppc.tdw(i64 %a, i64 32767, i32 3)134  ret void135}136 137define dso_local void @test__tdi_imm_reg_boundary(i64 %a) {138; CHECK-LABEL: test__tdi_imm_reg_boundary:139; CHECK:       # %bb.0:140; CHECK-NEXT:    tdi 3, r3, 32767141; CHECK-NEXT:    blr142  call void @llvm.ppc.tdw(i64 32767, i64 %a, i32 3)143  ret void144}145 146define dso_local void @test__tdi_reg_imm_boundary1(i64 %a) {147; CHECK-LABEL: test__tdi_reg_imm_boundary1:148; CHECK:       # %bb.0:149; CHECK-NEXT:    tdi 3, r3, -32768150; CHECK-NEXT:    blr151  call void @llvm.ppc.tdw(i64 %a, i64 -32768, i32 3)152  ret void153}154 155define dso_local void @test__tdi_imm_reg_boundary1(i64 %a) {156; CHECK-LABEL: test__tdi_imm_reg_boundary1:157; CHECK:       # %bb.0:158; CHECK-NEXT:    tdi 3, r3, -32768159; CHECK-NEXT:    blr160  call void @llvm.ppc.tdw(i64 -32768, i64 %a, i32 3)161  ret void162}163 164define dso_local void @test__td_reg_imm_boundary2(i64 %a) {165; CHECK-LABEL: test__td_reg_imm_boundary2:166; CHECK:       # %bb.0:167; CHECK-NEXT:    li r4, 0168; CHECK-NEXT:    ori r4, r4, 32768169; CHECK-NEXT:    td 3, r4, r3170; CHECK-NEXT:    blr171  call void @llvm.ppc.tdw(i64 32768, i64 %a, i32 3)172  ret void173}174 175define dso_local void @test__td_imm_reg_boundary2(i64 %a) {176; CHECK-LABEL: test__td_imm_reg_boundary2:177; CHECK:       # %bb.0:178; CHECK-NEXT:    li r4, 0179; CHECK-NEXT:    ori r4, r4, 32768180; CHECK-NEXT:    td 3, r3, r4181; CHECK-NEXT:    blr182  call void @llvm.ppc.tdw(i64 %a, i64 32768, i32 3)183  ret void184}185 186define dso_local void @test__td_reg_imm_boundary3(i64 %a) {187; CHECK-LABEL: test__td_reg_imm_boundary3:188; CHECK:       # %bb.0:189; CHECK-NEXT:    lis r4, -1190; CHECK-NEXT:    ori r4, r4, 32767191; CHECK-NEXT:    td 3, r3, r4192; CHECK-NEXT:    blr193  call void @llvm.ppc.tdw(i64 %a, i64 -32769, i32 3)194  ret void195}196 197define dso_local void @test__td_imm_reg_boundary3(i64 %a) {198; CHECK-LABEL: test__td_imm_reg_boundary3:199; CHECK:       # %bb.0:200; CHECK-NEXT:    lis r4, -1201; CHECK-NEXT:    ori r4, r4, 32767202; CHECK-NEXT:    td 3, r3, r4203; CHECK-NEXT:    blr204  call void @llvm.ppc.tdw(i64 %a, i64 -32769, i32 3)205  ret void206}207 208define dso_local void @test__tdlgti_reg_imm(i64 %a) {209; CHECK-LABEL: test__tdlgti_reg_imm:210; CHECK:       # %bb.0:211; CHECK-NEXT:    tdlgti r3, 0212; CHECK-NEXT:    blr213  call void @llvm.ppc.tdw(i64 %a, i64 0, i32 1)214  ret void215}216 217define dso_local void @test__tdllti_imm_reg(i64 %a) {218; CHECK-LABEL: test__tdllti_imm_reg:219; CHECK:       # %bb.0:220; CHECK-NEXT:    tdllti r3, 0221; CHECK-NEXT:    blr222  call void @llvm.ppc.tdw(i64 0, i64 %a, i32 1)223  ret void224}225 226define dso_local void @test__tdllti_reg_imm(i64 %a) {227; CHECK-LABEL: test__tdllti_reg_imm:228; CHECK:       # %bb.0:229; CHECK-NEXT:    tdllti r3, 1230; CHECK-NEXT:    blr231  call void @llvm.ppc.tdw(i64 %a, i64 1, i32 2)232  ret void233}234 235define dso_local void @test__tdlgti_imm_reg(i64 %a) {236; CHECK-LABEL: test__tdlgti_imm_reg:237; CHECK:       # %bb.0:238; CHECK-NEXT:    tdlgti r3, 1239; CHECK-NEXT:    blr240  call void @llvm.ppc.tdw(i64 1, i64 %a, i32 2)241  ret void242}243 244define dso_local void @test__tdeqi_reg_imm(i64 %a) {245; CHECK-LABEL: test__tdeqi_reg_imm:246; CHECK:       # %bb.0:247; CHECK-NEXT:    tdeqi r3, 2248; CHECK-NEXT:    blr249  call void @llvm.ppc.tdw(i64 %a, i64 2, i32 4)250  ret void251}252 253define dso_local void @test__tdeqi_imm_reg(i64 %a) {254; CHECK-LABEL: test__tdeqi_imm_reg:255; CHECK:       # %bb.0:256; CHECK-NEXT:    tdeqi r3, 2257; CHECK-NEXT:    blr258  call void @llvm.ppc.tdw(i64 2, i64 %a, i32 4)259  ret void260}261 262define dso_local void @test__tdgti_reg_imm(i64 %a) {263; CHECK-LABEL: test__tdgti_reg_imm:264; CHECK:       # %bb.0:265; CHECK-NEXT:    tdgti r3, 16266; CHECK-NEXT:    blr267  call void @llvm.ppc.tdw(i64 %a, i64 16, i32 8)268  ret void269}270 271define dso_local void @test__tdlti_imm_reg(i64 %a) {272; CHECK-LABEL: test__tdlti_imm_reg:273; CHECK:       # %bb.0:274; CHECK-NEXT:    tdlti r3, 16275; CHECK-NEXT:    blr276  call void @llvm.ppc.tdw(i64 16, i64 %a, i32 8)277  ret void278}279 280define dso_local void @test__tdlti_reg_imm(i64 %a) {281; CHECK-LABEL: test__tdlti_reg_imm:282; CHECK:       # %bb.0:283; CHECK-NEXT:    tdlti r3, 64284; CHECK-NEXT:    blr285  call void @llvm.ppc.tdw(i64 %a, i64 64, i32 16)286  ret void287}288 289define dso_local void @test__tdgti_imm_reg(i64 %a) {290; CHECK-LABEL: test__tdgti_imm_reg:291; CHECK:       # %bb.0:292; CHECK-NEXT:    tdgti r3, 64293; CHECK-NEXT:    blr294  call void @llvm.ppc.tdw(i64 64, i64 %a, i32 16)295  ret void296}297 298define dso_local void @test__tdnei_reg_imm(i64 %a) {299; CHECK-LABEL: test__tdnei_reg_imm:300; CHECK:       # %bb.0:301; CHECK-NEXT:    tdnei r3, 256302; CHECK-NEXT:    blr303  call void @llvm.ppc.tdw(i64 %a, i64 256, i32 24)304  ret void305}306 307define dso_local void @test__tdnei_imm_reg(i64 %a) {308; CHECK-LABEL: test__tdnei_imm_reg:309; CHECK:       # %bb.0:310; CHECK-NEXT:    tdnei r3, 256311; CHECK-NEXT:    blr312  call void @llvm.ppc.tdw(i64 256, i64 %a, i32 24)313  ret void314}315 316define dso_local void @test__tdui_reg_imm(i64 %a) {317; CHECK-LABEL: test__tdui_reg_imm:318; CHECK:       # %bb.0:319; CHECK-NEXT:    tdui r3, 512320; CHECK-NEXT:    blr321  call void @llvm.ppc.tdw(i64 %a, i64 512, i32 31)322  ret void323}324 325define dso_local void @test__tdui_imm_reg(i64 %a) {326; CHECK-LABEL: test__tdui_imm_reg:327; CHECK:       # %bb.0:328; CHECK-NEXT:    tdui r3, 512329; CHECK-NEXT:    blr330  call void @llvm.ppc.tdw(i64 512, i64 %a, i32 31)331  ret void332}333 334; trapd335declare void @llvm.ppc.trapd(i64 %a)336define dso_local void @test__trapd(i64 %a) {337; CHECK-LABEL: test__trapd:338; CHECK:       # %bb.0:339; CHECK-NEXT:    tdnei r3, 0340; CHECK-NEXT:    blr341  call void @llvm.ppc.trapd(i64 %a)342  ret void343}344