brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · 07fbe5d Raw
104 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=aarch64-linux-gnu < %s | FileCheck %s3 4target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"5target triple = "aarch64-unknown-linux-gnu"6 7define void @f_undef(<8 x i64> %a, ptr %dst) {8; CHECK-LABEL: f_undef:9; CHECK:       // %bb.0: // %BB10; CHECK-NEXT:    ret11BB:12  %S = shufflevector <8 x i64> %a, <8 x i64> %a, <16 x i32> undef13  store <16 x i64> %S, ptr %dst, align 6414  ret void15}16 17define void @f_poison(<8 x i64> %a, ptr %dst) {18; CHECK-LABEL: f_poison:19; CHECK:       // %bb.0: // %BB20; CHECK-NEXT:    ret21BB:22  %S = shufflevector <8 x i64> %a, <8 x i64> %a, <16 x i32> poison23  store <16 x i64> %S, ptr %dst, align 6424  ret void25}26 27define void @f_undef_15(<8 x i64> %a, ptr %dst) {28; CHECK-LABEL: f_undef_15:29; CHECK:       // %bb.0: // %BB30; CHECK-NEXT:    // kill: def $q0 killed $q0 def $q0_q131; CHECK-NEXT:    mov x8, x032; CHECK-NEXT:    mov v1.16b, v0.16b33; CHECK-NEXT:    st2 { v0.2d, v1.2d }, [x8], #3234; CHECK-NEXT:    st2 { v0.2d, v1.2d }, [x8]35; CHECK-NEXT:    add x8, x0, #6436; CHECK-NEXT:    st2 { v0.2d, v1.2d }, [x8]37; CHECK-NEXT:    add x8, x0, #9638; CHECK-NEXT:    st2 { v0.2d, v1.2d }, [x8]39; CHECK-NEXT:    ret40BB:41  %S = shufflevector <8 x i64> %a, <8 x i64> %a, <16 x i32> <i32 0, i32 undef, i32 undef, i32 undef,i32 undef, i32 undef, i32 undef, i32 undef,i32 undef, i32 undef, i32 undef, i32 undef,i32 undef, i32 undef, i32 undef, i32 undef>42  store <16 x i64> %S, ptr %dst, align 6443  ret void44}45 46define void @f_undef_1(<8 x i64> %a, ptr %dst) {47; CHECK-LABEL: f_undef_1:48; CHECK:       // %bb.0: // %BB49; CHECK-NEXT:    mov v16.16b, v0.16b50; CHECK-NEXT:    mov v5.16b, v2.16b51; CHECK-NEXT:    // kill: def $q1 killed $q1 def $q1_q252; CHECK-NEXT:    // kill: def $q3 killed $q3 def $q3_q453; CHECK-NEXT:    mov x8, x054; CHECK-NEXT:    mov v2.16b, v1.16b55; CHECK-NEXT:    mov v4.16b, v3.16b56; CHECK-NEXT:    mov v17.16b, v16.16b57; CHECK-NEXT:    mov v6.16b, v5.16b58; CHECK-NEXT:    st2 { v16.2d, v17.2d }, [x8], #3259; CHECK-NEXT:    st2 { v1.2d, v2.2d }, [x8]60; CHECK-NEXT:    add x8, x0, #6461; CHECK-NEXT:    st2 { v5.2d, v6.2d }, [x8]62; CHECK-NEXT:    add x8, x0, #9663; CHECK-NEXT:    st2 { v3.2d, v4.2d }, [x8]64; CHECK-NEXT:    ret65BB:66  %S = shufflevector <8 x i64> %a, <8 x i64> %a, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 undef, i32 14, i32 7, i32 15>67  store <16 x i64> %S, ptr %dst, align 6468  ret void69}70 71; noundefs and undefs should have the same results.72define void @noundefs(<8 x i32> %a, <8 x i32> %b, ptr %dst) {73; CHECK-LABEL: noundefs:74; CHECK:       // %bb.0: // %BB75; CHECK-NEXT:    mov v5.16b, v2.16b76; CHECK-NEXT:    // kill: def $q3 killed $q3 def $q2_q377; CHECK-NEXT:    mov v4.16b, v0.16b78; CHECK-NEXT:    mov v2.16b, v1.16b79; CHECK-NEXT:    st2 { v4.4s, v5.4s }, [x0], #3280; CHECK-NEXT:    st2 { v2.4s, v3.4s }, [x0]81; CHECK-NEXT:    ret82BB:83  %S = shufflevector <8 x i32> %a, <8 x i32> %b, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 undef, i32 14, i32 7, i32 15>84  store <16 x i32> %S, ptr %dst, align 6485  ret void86}87 88define void @undefs(<8 x i32> %a, <8 x i32> %b, ptr %dst) {89; CHECK-LABEL: undefs:90; CHECK:       // %bb.0: // %BB91; CHECK-NEXT:    mov v5.16b, v2.16b92; CHECK-NEXT:    // kill: def $q3 killed $q3 def $q2_q393; CHECK-NEXT:    mov v4.16b, v0.16b94; CHECK-NEXT:    mov v2.16b, v1.16b95; CHECK-NEXT:    st2 { v4.4s, v5.4s }, [x0], #3296; CHECK-NEXT:    st2 { v2.4s, v3.4s }, [x0]97; CHECK-NEXT:    ret98BB:99  %S = shufflevector <8 x i32> %a, <8 x i32> %b, <16 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 3, i32 11, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 7, i32 15>100  store <16 x i32> %S, ptr %dst, align 64101  ret void102}103 104