brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.0 KiB · 96d5b5e Raw
297 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s -verify-machineinstrs -mtriple=arm64-none-linux-gnu -mattr=+neon | FileCheck %s3 4define <8 x i8> @test_vget_high_s8(<16 x i8> %a) {5; CHECK-LABEL: test_vget_high_s8:6; CHECK:       // %bb.0: // %entry7; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #88; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q09; CHECK-NEXT:    ret10entry:11  %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>12  ret <8 x i8> %shuffle.i13}14 15define <4 x i16> @test_vget_high_s16(<8 x i16> %a) {16; CHECK-LABEL: test_vget_high_s16:17; CHECK:       // %bb.0: // %entry18; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #819; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q020; CHECK-NEXT:    ret21entry:22  %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>23  ret <4 x i16> %shuffle.i24}25 26define <2 x i32> @test_vget_high_s32(<4 x i32> %a) {27; CHECK-LABEL: test_vget_high_s32:28; CHECK:       // %bb.0: // %entry29; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #830; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q031; CHECK-NEXT:    ret32entry:33  %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <2 x i32> <i32 2, i32 3>34  ret <2 x i32> %shuffle.i35}36 37define <1 x i64> @test_vget_high_s64(<2 x i64> %a) {38; CHECK-LABEL: test_vget_high_s64:39; CHECK:       // %bb.0: // %entry40; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #841; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q042; CHECK-NEXT:    ret43entry:44  %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> undef, <1 x i32> <i32 1>45  ret <1 x i64> %shuffle.i46}47 48define <8 x i8> @test_vget_high_u8(<16 x i8> %a) {49; CHECK-LABEL: test_vget_high_u8:50; CHECK:       // %bb.0: // %entry51; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #852; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q053; CHECK-NEXT:    ret54entry:55  %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>56  ret <8 x i8> %shuffle.i57}58 59define <4 x i16> @test_vget_high_u16(<8 x i16> %a) {60; CHECK-LABEL: test_vget_high_u16:61; CHECK:       // %bb.0: // %entry62; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #863; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q064; CHECK-NEXT:    ret65entry:66  %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>67  ret <4 x i16> %shuffle.i68}69 70define <2 x i32> @test_vget_high_u32(<4 x i32> %a) {71; CHECK-LABEL: test_vget_high_u32:72; CHECK:       // %bb.0: // %entry73; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #874; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q075; CHECK-NEXT:    ret76entry:77  %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <2 x i32> <i32 2, i32 3>78  ret <2 x i32> %shuffle.i79}80 81define <1 x i64> @test_vget_high_u64(<2 x i64> %a) {82; CHECK-LABEL: test_vget_high_u64:83; CHECK:       // %bb.0: // %entry84; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #885; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q086; CHECK-NEXT:    ret87entry:88  %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> undef, <1 x i32> <i32 1>89  ret <1 x i64> %shuffle.i90}91 92define <1 x i64> @test_vget_high_p64(<2 x i64> %a) {93; CHECK-LABEL: test_vget_high_p64:94; CHECK:       // %bb.0: // %entry95; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #896; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q097; CHECK-NEXT:    ret98entry:99  %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> undef, <1 x i32> <i32 1>100  ret <1 x i64> %shuffle.i101}102 103define <4 x i16> @test_vget_high_f16(<8 x i16> %a) {104; CHECK-LABEL: test_vget_high_f16:105; CHECK:       // %bb.0: // %entry106; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #8107; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0108; CHECK-NEXT:    ret109entry:110  %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>111  ret <4 x i16> %shuffle.i112}113 114define <2 x float> @test_vget_high_f32(<4 x float> %a) {115; CHECK-LABEL: test_vget_high_f32:116; CHECK:       // %bb.0: // %entry117; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #8118; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0119; CHECK-NEXT:    ret120entry:121  %shuffle.i = shufflevector <4 x float> %a, <4 x float> undef, <2 x i32> <i32 2, i32 3>122  ret <2 x float> %shuffle.i123}124 125define <8 x i8> @test_vget_high_p8(<16 x i8> %a) {126; CHECK-LABEL: test_vget_high_p8:127; CHECK:       // %bb.0: // %entry128; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #8129; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0130; CHECK-NEXT:    ret131entry:132  %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>133  ret <8 x i8> %shuffle.i134}135 136define <4 x i16> @test_vget_high_p16(<8 x i16> %a) {137; CHECK-LABEL: test_vget_high_p16:138; CHECK:       // %bb.0: // %entry139; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #8140; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0141; CHECK-NEXT:    ret142entry:143  %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>144  ret <4 x i16> %shuffle.i145}146 147define <1 x double> @test_vget_high_f64(<2 x double> %a) {148; CHECK-LABEL: test_vget_high_f64:149; CHECK:       // %bb.0: // %entry150; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #8151; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0152; CHECK-NEXT:    ret153entry:154  %shuffle.i = shufflevector <2 x double> %a, <2 x double> undef, <1 x i32> <i32 1>155  ret <1 x double> %shuffle.i156}157 158define <8 x i8> @test_vget_low_s8(<16 x i8> %a) {159; CHECK-LABEL: test_vget_low_s8:160; CHECK:       // %bb.0: // %entry161; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0162; CHECK-NEXT:    ret163entry:164  %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>165  ret <8 x i8> %shuffle.i166}167 168define <4 x i16> @test_vget_low_s16(<8 x i16> %a) {169; CHECK-LABEL: test_vget_low_s16:170; CHECK:       // %bb.0: // %entry171; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0172; CHECK-NEXT:    ret173entry:174  %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>175  ret <4 x i16> %shuffle.i176}177 178define <2 x i32> @test_vget_low_s32(<4 x i32> %a) {179; CHECK-LABEL: test_vget_low_s32:180; CHECK:       // %bb.0: // %entry181; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0182; CHECK-NEXT:    ret183entry:184  %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <2 x i32> <i32 0, i32 1>185  ret <2 x i32> %shuffle.i186}187 188define <1 x i64> @test_vget_low_s64(<2 x i64> %a) {189; CHECK-LABEL: test_vget_low_s64:190; CHECK:       // %bb.0: // %entry191; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0192; CHECK-NEXT:    ret193entry:194  %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> undef, <1 x i32> zeroinitializer195  ret <1 x i64> %shuffle.i196}197 198define <8 x i8> @test_vget_low_u8(<16 x i8> %a) {199; CHECK-LABEL: test_vget_low_u8:200; CHECK:       // %bb.0: // %entry201; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0202; CHECK-NEXT:    ret203entry:204  %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>205  ret <8 x i8> %shuffle.i206}207 208define <4 x i16> @test_vget_low_u16(<8 x i16> %a) {209; CHECK-LABEL: test_vget_low_u16:210; CHECK:       // %bb.0: // %entry211; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0212; CHECK-NEXT:    ret213entry:214  %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>215  ret <4 x i16> %shuffle.i216}217 218define <2 x i32> @test_vget_low_u32(<4 x i32> %a) {219; CHECK-LABEL: test_vget_low_u32:220; CHECK:       // %bb.0: // %entry221; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0222; CHECK-NEXT:    ret223entry:224  %shuffle.i = shufflevector <4 x i32> %a, <4 x i32> undef, <2 x i32> <i32 0, i32 1>225  ret <2 x i32> %shuffle.i226}227 228define <1 x i64> @test_vget_low_u64(<2 x i64> %a) {229; CHECK-LABEL: test_vget_low_u64:230; CHECK:       // %bb.0: // %entry231; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0232; CHECK-NEXT:    ret233entry:234  %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> undef, <1 x i32> zeroinitializer235  ret <1 x i64> %shuffle.i236}237 238define <1 x i64> @test_vget_low_p64(<2 x i64> %a) {239; CHECK-LABEL: test_vget_low_p64:240; CHECK:       // %bb.0: // %entry241; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0242; CHECK-NEXT:    ret243entry:244  %shuffle.i = shufflevector <2 x i64> %a, <2 x i64> undef, <1 x i32> zeroinitializer245  ret <1 x i64> %shuffle.i246}247 248define <4 x i16> @test_vget_low_f16(<8 x i16> %a) {249; CHECK-LABEL: test_vget_low_f16:250; CHECK:       // %bb.0: // %entry251; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0252; CHECK-NEXT:    ret253entry:254  %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>255  ret <4 x i16> %shuffle.i256}257 258define <2 x float> @test_vget_low_f32(<4 x float> %a) {259; CHECK-LABEL: test_vget_low_f32:260; CHECK:       // %bb.0: // %entry261; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0262; CHECK-NEXT:    ret263entry:264  %shuffle.i = shufflevector <4 x float> %a, <4 x float> undef, <2 x i32> <i32 0, i32 1>265  ret <2 x float> %shuffle.i266}267 268define <8 x i8> @test_vget_low_p8(<16 x i8> %a) {269; CHECK-LABEL: test_vget_low_p8:270; CHECK:       // %bb.0: // %entry271; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0272; CHECK-NEXT:    ret273entry:274  %shuffle.i = shufflevector <16 x i8> %a, <16 x i8> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>275  ret <8 x i8> %shuffle.i276}277 278define <4 x i16> @test_vget_low_p16(<8 x i16> %a) {279; CHECK-LABEL: test_vget_low_p16:280; CHECK:       // %bb.0: // %entry281; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0282; CHECK-NEXT:    ret283entry:284  %shuffle.i = shufflevector <8 x i16> %a, <8 x i16> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>285  ret <4 x i16> %shuffle.i286}287 288define <1 x double> @test_vget_low_f64(<2 x double> %a) {289; CHECK-LABEL: test_vget_low_f64:290; CHECK:       // %bb.0: // %entry291; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0292; CHECK-NEXT:    ret293entry:294  %shuffle.i = shufflevector <2 x double> %a, <2 x double> undef, <1 x i32> zeroinitializer295  ret <1 x double> %shuffle.i296}297