brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.9 KiB · 72d47c6 Raw
174 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:   -mcpu=pwr8 < %s | FileCheck %s --check-prefixes=CHECK-LE-P84; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \5; RUN:   -mcpu=pwr9 < %s | FileCheck %s --check-prefixes=CHECK-P96; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \7; RUN:   -mcpu=pwr8 < %s | FileCheck %s --check-prefixes=CHECK-BE-P88 9define <16 x i8> @test_vpermxorb() local_unnamed_addr {10; CHECK-LE-P8-LABEL: test_vpermxorb:11; CHECK-LE-P8:       # %bb.0: # %entry12; CHECK-LE-P8-NEXT:    addis 3, 2, .LCPI0_0@toc@ha13; CHECK-LE-P8-NEXT:    addi 3, 3, .LCPI0_0@toc@l14; CHECK-LE-P8-NEXT:    lxvd2x 0, 0, 315; CHECK-LE-P8-NEXT:    addis 3, 2, .LCPI0_1@toc@ha16; CHECK-LE-P8-NEXT:    addi 3, 3, .LCPI0_1@toc@l17; CHECK-LE-P8-NEXT:    xxswapd 34, 018; CHECK-LE-P8-NEXT:    lxvd2x 0, 0, 319; CHECK-LE-P8-NEXT:    xxswapd 35, 020; CHECK-LE-P8-NEXT:    vpermxor 2, 3, 2, 221; CHECK-LE-P8-NEXT:    blr22;23; CHECK-P9-LABEL: test_vpermxorb:24; CHECK-P9:       # %bb.0: # %entry25; CHECK-P9-NEXT:    addis 3, 2, .LCPI0_0@toc@ha26; CHECK-P9-NEXT:    addi 3, 3, .LCPI0_0@toc@l27; CHECK-P9-NEXT:    lxv 34, 0(3)28; CHECK-P9-NEXT:    addis 3, 2, .LCPI0_1@toc@ha29; CHECK-P9-NEXT:    addi 3, 3, .LCPI0_1@toc@l30; CHECK-P9-NEXT:    lxv 35, 0(3)31; CHECK-P9-NEXT:    vpermxor 2, 3, 2, 232; CHECK-P9-NEXT:    blr33;34; CHECK-BE-P8-LABEL: test_vpermxorb:35; CHECK-BE-P8:       # %bb.0: # %entry36; CHECK-BE-P8-NEXT:    addis 3, 2, .LCPI0_0@toc@ha37; CHECK-BE-P8-NEXT:    addi 3, 3, .LCPI0_0@toc@l38; CHECK-BE-P8-NEXT:    lxvw4x 34, 0, 339; CHECK-BE-P8-NEXT:    addis 3, 2, .LCPI0_1@toc@ha40; CHECK-BE-P8-NEXT:    addi 3, 3, .LCPI0_1@toc@l41; CHECK-BE-P8-NEXT:    lxvw4x 35, 0, 342; CHECK-BE-P8-NEXT:    vpermxor 2, 3, 2, 243; CHECK-BE-P8-NEXT:    blr44entry:45  %0 = tail call <16 x i8> @llvm.ppc.altivec.crypto.vpermxor.be(<16 x i8> <i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15, i8 16>, <16 x i8> <i8 113, i8 114, i8 115, i8 116, i8 117, i8 118, i8 119, i8 120, i8 121, i8 122, i8 123, i8 124, i8 125, i8 126, i8 127, i8 112>, <16 x i8> <i8 113, i8 114, i8 115, i8 116, i8 117, i8 118, i8 119, i8 120, i8 121, i8 122, i8 123, i8 124, i8 125, i8 126, i8 127, i8 112>)46  ret <16 x i8> %047}48 49declare <16 x i8> @llvm.ppc.altivec.crypto.vpermxor.be(<16 x i8>, <16 x i8>, <16 x i8>)50 51define <8 x i16> @test_vpermxorh() local_unnamed_addr {52; CHECK-LE-P8-LABEL: test_vpermxorh:53; CHECK-LE-P8:       # %bb.0: # %entry54; CHECK-LE-P8-NEXT:    addis 3, 2, .LCPI1_0@toc@ha55; CHECK-LE-P8-NEXT:    addi 3, 3, .LCPI1_0@toc@l56; CHECK-LE-P8-NEXT:    lxvd2x 0, 0, 357; CHECK-LE-P8-NEXT:    addis 3, 2, .LCPI1_1@toc@ha58; CHECK-LE-P8-NEXT:    addi 3, 3, .LCPI1_1@toc@l59; CHECK-LE-P8-NEXT:    xxswapd 34, 060; CHECK-LE-P8-NEXT:    lxvd2x 0, 0, 361; CHECK-LE-P8-NEXT:    xxswapd 35, 062; CHECK-LE-P8-NEXT:    vpermxor 2, 3, 2, 263; CHECK-LE-P8-NEXT:    blr64;65; CHECK-P9-LABEL: test_vpermxorh:66; CHECK-P9:       # %bb.0: # %entry67; CHECK-P9-NEXT:    addis 3, 2, .LCPI1_0@toc@ha68; CHECK-P9-NEXT:    addi 3, 3, .LCPI1_0@toc@l69; CHECK-P9-NEXT:    lxv 34, 0(3)70; CHECK-P9-NEXT:    addis 3, 2, .LCPI1_1@toc@ha71; CHECK-P9-NEXT:    addi 3, 3, .LCPI1_1@toc@l72; CHECK-P9-NEXT:    lxv 35, 0(3)73; CHECK-P9-NEXT:    vpermxor 2, 3, 2, 274; CHECK-P9-NEXT:    blr75;76; CHECK-BE-P8-LABEL: test_vpermxorh:77; CHECK-BE-P8:       # %bb.0: # %entry78; CHECK-BE-P8-NEXT:    addis 3, 2, .LCPI1_0@toc@ha79; CHECK-BE-P8-NEXT:    addi 3, 3, .LCPI1_0@toc@l80; CHECK-BE-P8-NEXT:    lxvw4x 34, 0, 381; CHECK-BE-P8-NEXT:    addis 3, 2, .LCPI1_1@toc@ha82; CHECK-BE-P8-NEXT:    addi 3, 3, .LCPI1_1@toc@l83; CHECK-BE-P8-NEXT:    lxvw4x 35, 0, 384; CHECK-BE-P8-NEXT:    vpermxor 2, 3, 2, 285; CHECK-BE-P8-NEXT:    blr86entry:87  %0 = tail call <16 x i8> @llvm.ppc.altivec.crypto.vpermxor.be(<16 x i8> <i8 2, i8 1, i8 4, i8 3, i8 6, i8 5, i8 8, i8 7, i8 10, i8 9, i8 12, i8 11, i8 14, i8 13, i8 16, i8 15>, <16 x i8> <i8 114, i8 113, i8 116, i8 115, i8 118, i8 117, i8 120, i8 119, i8 122, i8 121, i8 124, i8 123, i8 126, i8 125, i8 112, i8 127>, <16 x i8> <i8 114, i8 113, i8 116, i8 115, i8 118, i8 117, i8 120, i8 119, i8 122, i8 121, i8 124, i8 123, i8 126, i8 125, i8 112, i8 127>)88  %1 = bitcast <16 x i8> %0 to <8 x i16>89  ret <8 x i16> %190}91 92define <4 x i32> @test_vpermxorw() local_unnamed_addr {93; CHECK-LE-P8-LABEL: test_vpermxorw:94; CHECK-LE-P8:       # %bb.0: # %entry95; CHECK-LE-P8-NEXT:    addis 3, 2, .LCPI2_0@toc@ha96; CHECK-LE-P8-NEXT:    addi 3, 3, .LCPI2_0@toc@l97; CHECK-LE-P8-NEXT:    lxvd2x 0, 0, 398; CHECK-LE-P8-NEXT:    addis 3, 2, .LCPI2_1@toc@ha99; CHECK-LE-P8-NEXT:    addi 3, 3, .LCPI2_1@toc@l100; CHECK-LE-P8-NEXT:    xxswapd 34, 0101; CHECK-LE-P8-NEXT:    lxvd2x 0, 0, 3102; CHECK-LE-P8-NEXT:    xxswapd 35, 0103; CHECK-LE-P8-NEXT:    vpermxor 2, 3, 2, 2104; CHECK-LE-P8-NEXT:    blr105;106; CHECK-P9-LABEL: test_vpermxorw:107; CHECK-P9:       # %bb.0: # %entry108; CHECK-P9-NEXT:    addis 3, 2, .LCPI2_0@toc@ha109; CHECK-P9-NEXT:    addi 3, 3, .LCPI2_0@toc@l110; CHECK-P9-NEXT:    lxv 34, 0(3)111; CHECK-P9-NEXT:    addis 3, 2, .LCPI2_1@toc@ha112; CHECK-P9-NEXT:    addi 3, 3, .LCPI2_1@toc@l113; CHECK-P9-NEXT:    lxv 35, 0(3)114; CHECK-P9-NEXT:    vpermxor 2, 3, 2, 2115; CHECK-P9-NEXT:    blr116;117; CHECK-BE-P8-LABEL: test_vpermxorw:118; CHECK-BE-P8:       # %bb.0: # %entry119; CHECK-BE-P8-NEXT:    addis 3, 2, .LCPI2_0@toc@ha120; CHECK-BE-P8-NEXT:    addi 3, 3, .LCPI2_0@toc@l121; CHECK-BE-P8-NEXT:    lxvw4x 34, 0, 3122; CHECK-BE-P8-NEXT:    addis 3, 2, .LCPI2_1@toc@ha123; CHECK-BE-P8-NEXT:    addi 3, 3, .LCPI2_1@toc@l124; CHECK-BE-P8-NEXT:    lxvw4x 35, 0, 3125; CHECK-BE-P8-NEXT:    vpermxor 2, 3, 2, 2126; CHECK-BE-P8-NEXT:    blr127entry:128  %0 = tail call <16 x i8> @llvm.ppc.altivec.crypto.vpermxor.be(<16 x i8> <i8 4, i8 3, i8 2, i8 1, i8 8, i8 7, i8 6, i8 5, i8 12, i8 11, i8 10, i8 9, i8 16, i8 15, i8 14, i8 13>, <16 x i8> <i8 116, i8 115, i8 114, i8 113, i8 120, i8 119, i8 118, i8 117, i8 124, i8 123, i8 122, i8 121, i8 112, i8 127, i8 126, i8 125>, <16 x i8> <i8 116, i8 115, i8 114, i8 113, i8 120, i8 119, i8 118, i8 117, i8 124, i8 123, i8 122, i8 121, i8 112, i8 127, i8 126, i8 125>)129  %1 = bitcast <16 x i8> %0 to <4 x i32>130  ret <4 x i32> %1131}132 133define <2 x i64> @test_vpermxord() local_unnamed_addr {134; CHECK-LE-P8-LABEL: test_vpermxord:135; CHECK-LE-P8:       # %bb.0: # %entry136; CHECK-LE-P8-NEXT:    addis 3, 2, .LCPI3_0@toc@ha137; CHECK-LE-P8-NEXT:    addi 3, 3, .LCPI3_0@toc@l138; CHECK-LE-P8-NEXT:    lxvd2x 0, 0, 3139; CHECK-LE-P8-NEXT:    addis 3, 2, .LCPI3_1@toc@ha140; CHECK-LE-P8-NEXT:    addi 3, 3, .LCPI3_1@toc@l141; CHECK-LE-P8-NEXT:    xxswapd 34, 0142; CHECK-LE-P8-NEXT:    lxvd2x 0, 0, 3143; CHECK-LE-P8-NEXT:    xxswapd 35, 0144; CHECK-LE-P8-NEXT:    vpermxor 2, 3, 2, 2145; CHECK-LE-P8-NEXT:    blr146;147; CHECK-P9-LABEL: test_vpermxord:148; CHECK-P9:       # %bb.0: # %entry149; CHECK-P9-NEXT:    addis 3, 2, .LCPI3_0@toc@ha150; CHECK-P9-NEXT:    addi 3, 3, .LCPI3_0@toc@l151; CHECK-P9-NEXT:    lxv 34, 0(3)152; CHECK-P9-NEXT:    addis 3, 2, .LCPI3_1@toc@ha153; CHECK-P9-NEXT:    addi 3, 3, .LCPI3_1@toc@l154; CHECK-P9-NEXT:    lxv 35, 0(3)155; CHECK-P9-NEXT:    vpermxor 2, 3, 2, 2156; CHECK-P9-NEXT:    blr157;158; CHECK-BE-P8-LABEL: test_vpermxord:159; CHECK-BE-P8:       # %bb.0: # %entry160; CHECK-BE-P8-NEXT:    addis 3, 2, .LCPI3_0@toc@ha161; CHECK-BE-P8-NEXT:    addi 3, 3, .LCPI3_0@toc@l162; CHECK-BE-P8-NEXT:    lxvw4x 34, 0, 3163; CHECK-BE-P8-NEXT:    addis 3, 2, .LCPI3_1@toc@ha164; CHECK-BE-P8-NEXT:    addi 3, 3, .LCPI3_1@toc@l165; CHECK-BE-P8-NEXT:    lxvw4x 35, 0, 3166; CHECK-BE-P8-NEXT:    vpermxor 2, 3, 2, 2167; CHECK-BE-P8-NEXT:    blr168entry:169  %0 = tail call <16 x i8> @llvm.ppc.altivec.crypto.vpermxor.be(<16 x i8> <i8 8, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 16, i8 15, i8 14, i8 13, i8 12, i8 11, i8 10, i8 9>, <16 x i8> <i8 120, i8 119, i8 118, i8 117, i8 116, i8 115, i8 114, i8 113, i8 112, i8 127, i8 126, i8 125, i8 124, i8 123, i8 122, i8 121>, <16 x i8> <i8 120, i8 119, i8 118, i8 117, i8 116, i8 115, i8 114, i8 113, i8 112, i8 127, i8 126, i8 125, i8 124, i8 123, i8 122, i8 121>)170  %1 = bitcast <16 x i8> %0 to <2 x i64>171  ret <2 x i64> %1172}173 174