brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 260f693 Raw
30 lines · plain
1; RUN: llc < %s -mtriple=aarch64-none-linux-gnu -mattr=+neon | FileCheck %s2 3; Check that the DAGCombiner does not crash with an assertion failure4; when performing a target specific combine to simplify a 'or' dag node5; according to the following rule:6;   (or (and B, A), (and C, ~A)) => (VBSL A, B, C)7; The assertion failure was caused by an invalid comparison between APInt8; values with different 'BitWidth'.9 10define <8 x i8> @test1(<8 x i8> %a, <8 x i8> %b)  {11  %tmp1 = and <8 x i8> %a, < i8 -1, i8 -1, i8 0, i8 0, i8 -1, i8 -1, i8 0, i8 0 >12  %tmp2 = and <8 x i8> %b, < i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0 >13  %tmp3 = or <8 x i8> %tmp1, %tmp214  ret <8 x i8> %tmp315}16 17; CHECK-LABEL: test118; CHECK: ret19 20define <16 x i8> @test2(<16 x i8> %a, <16 x i8> %b) {21  %tmp1 = and <16 x i8> %a, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 >22  %tmp2 = and <16 x i8> %b, < 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, i8 0 >23  %tmp3 = or <16 x i8> %tmp1, %tmp224  ret <16 x i8> %tmp325}26 27; CHECK-LABEL: test228; CHECK: ret29 30