brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.9 KiB · 7771a0a Raw
129 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=aarch64 < %s | FileCheck %s3 4define <16 x i8> @fn1_vector(<16 x i8> %arg) {5; CHECK-LABEL: fn1_vector:6; CHECK:       // %bb.0: // %entry7; CHECK-NEXT:    adrp x8, .LCPI0_08; CHECK-NEXT:    ldr q1, [x8, :lo12:.LCPI0_0]9; CHECK-NEXT:    mul v0.16b, v0.16b, v1.16b10; CHECK-NEXT:    ret11entry:12  %shl = shl <16 x i8> %arg, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>13  %mul = mul <16 x i8> %shl, <i8 0, i8 1, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>14  ret <16 x i8> %mul15}16 17define <16 x i8> @fn2_vector(<16 x i8> %arg) {18; CHECK-LABEL: fn2_vector:19; CHECK:       // %bb.0: // %entry20; CHECK-NEXT:    adrp x8, .LCPI1_021; CHECK-NEXT:    ldr q1, [x8, :lo12:.LCPI1_0]22; CHECK-NEXT:    mul v0.16b, v0.16b, v1.16b23; CHECK-NEXT:    ret24entry:25  %mul = mul <16 x i8> %arg, <i8 0, i8 1, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>26  %shl = shl <16 x i8> %mul, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>27  ret <16 x i8> %shl28}29 30define <16 x i8> @fn1_vector_undef(<16 x i8> %arg) {31; CHECK-LABEL: fn1_vector_undef:32; CHECK:       // %bb.0: // %entry33; CHECK-NEXT:    adrp x8, .LCPI2_034; CHECK-NEXT:    ldr q1, [x8, :lo12:.LCPI2_0]35; CHECK-NEXT:    mul v0.16b, v0.16b, v1.16b36; CHECK-NEXT:    ret37entry:38  %shl = shl <16 x i8> %arg, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>39  %mul = mul <16 x i8> %shl, <i8 undef, i8 1, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>40  ret <16 x i8> %mul41}42 43define <16 x i8> @fn2_vector_undef(<16 x i8> %arg) {44; CHECK-LABEL: fn2_vector_undef:45; CHECK:       // %bb.0: // %entry46; CHECK-NEXT:    adrp x8, .LCPI3_047; CHECK-NEXT:    ldr q1, [x8, :lo12:.LCPI3_0]48; CHECK-NEXT:    mul v0.16b, v0.16b, v1.16b49; CHECK-NEXT:    ret50entry:51  %mul = mul <16 x i8> %arg, <i8 undef, i8 1, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>52  %shl = shl <16 x i8> %mul, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>53  ret <16 x i8> %shl54}55 56define i32 @fn1_scalar(i32 %arg) {57; CHECK-LABEL: fn1_scalar:58; CHECK:       // %bb.0: // %entry59; CHECK-NEXT:    mov w8, #166460; CHECK-NEXT:    mul w0, w0, w861; CHECK-NEXT:    ret62entry:63  %shl = shl i32 %arg, 764  %mul = mul i32 %shl, 1365  ret i32 %mul66}67 68define i32 @fn2_scalar(i32 %arg) {69; CHECK-LABEL: fn2_scalar:70; CHECK:       // %bb.0: // %entry71; CHECK-NEXT:    mov w8, #166472; CHECK-NEXT:    mul w0, w0, w873; CHECK-NEXT:    ret74entry:75  %mul = mul i32 %arg, 1376  %shl = shl i32 %mul, 777  ret i32 %shl78}79 80define i32 @fn1_scalar_undef(i32 %arg) {81; CHECK-LABEL: fn1_scalar_undef:82; CHECK:       // %bb.0: // %entry83; CHECK-NEXT:    mov w0, wzr84; CHECK-NEXT:    ret85entry:86  %shl = shl i32 %arg, 787  %mul = mul i32 %shl, undef88  ret i32 %mul89}90 91define i32 @fn2_scalar_undef(i32 %arg) {92; CHECK-LABEL: fn2_scalar_undef:93; CHECK:       // %bb.0: // %entry94; CHECK-NEXT:    mov w0, wzr95; CHECK-NEXT:    ret96entry:97  %mul = mul i32 %arg, undef98  %shl = shl i32 %mul, 799  ret i32 %shl100}101 102define i32 @fn1_scalar_opaque(i32 %arg) {103; CHECK-LABEL: fn1_scalar_opaque:104; CHECK:       // %bb.0: // %entry105; CHECK-NEXT:    mov w8, #13106; CHECK-NEXT:    mul w8, w0, w8107; CHECK-NEXT:    lsl w0, w8, #7108; CHECK-NEXT:    ret109entry:110  %bitcast = bitcast i32 13 to i32111  %shl = shl i32 %arg, 7112  %mul = mul i32 %shl, %bitcast113  ret i32 %mul114}115 116define i32 @fn2_scalar_opaque(i32 %arg) {117; CHECK-LABEL: fn2_scalar_opaque:118; CHECK:       // %bb.0: // %entry119; CHECK-NEXT:    mov w8, #13120; CHECK-NEXT:    mul w8, w0, w8121; CHECK-NEXT:    lsl w0, w8, #7122; CHECK-NEXT:    ret123entry:124  %bitcast = bitcast i32 13 to i32125  %mul = mul i32 %arg, %bitcast126  %shl = shl i32 %mul, 7127  ret i32 %shl128}129