[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / Hexagon / disable-const64-tinycore.ll
blob7ed59edc626b647bd13a73bf0dac42712f3321f1
1 ; RUN: llc -mtriple=hexagon-unknown-elf -mcpu=hexagonv67t < %s | FileCheck %s
3 ;CHECK-NOT: CONST64
5 define dso_local void @analyze(i16* nocapture %analysisBuffer0, i16* nocapture %analysisBuffer1, i32* nocapture %subband) local_unnamed_addr {
6 entry:
7   %0 = load i64, i64* undef, align 8
8   %1 = tail call i64 @llvm.hexagon.S2.vtrunewh(i64 %0, i64 undef)
9   %2 = tail call i64 @llvm.hexagon.S2.vtrunowh(i64 %0, i64 undef)
10   %_HEXAGON_V64_internal_union.sroa.3.0.extract.shift = and i64 %1, -4294967296
11   %3 = shl i64 %2, 32
12   %conv15 = ashr exact i64 %3, 32
13   %arrayidx16 = getelementptr inbounds i16, i16* %analysisBuffer0, i32 4
14   %4 = bitcast i16* %arrayidx16 to i64*
15   store i64 %_HEXAGON_V64_internal_union.sroa.3.0.extract.shift, i64* %4, align 8
16   %arrayidx17 = getelementptr inbounds i16, i16* %analysisBuffer1, i32 4
17   %5 = bitcast i16* %arrayidx17 to i64*
18   store i64 %conv15, i64* %5, align 8
19   %arrayidx18 = getelementptr inbounds i16, i16* %analysisBuffer1, i32 8
20   %6 = bitcast i16* %arrayidx18 to i64*
21   %7 = load i64, i64* %6, align 8
22   %8 = tail call i64 @llvm.hexagon.M2.mmachs.s1(i64 undef, i64 29819854865948160, i64 %7)
23   store i64 %8, i64* %6, align 8
24   %arrayidx34 = getelementptr inbounds i16, i16* %analysisBuffer0, i32 40
25   %9 = bitcast i16* %arrayidx34 to i64*
26   %10 = load i64, i64* %9, align 8
27   %11 = tail call i64 @llvm.hexagon.M2.mmachs.s1(i64 undef, i64 282574488406740992, i64 %10)
28   %arrayidx35 = getelementptr inbounds i16, i16* %analysisBuffer0, i32 56
29   %12 = bitcast i16* %arrayidx35 to i64*
30   %13 = load i64, i64* %12, align 8
31   %14 = tail call i64 @llvm.hexagon.M2.mmacls.s1(i64 undef, i64 undef, i64 %13)
32   %15 = tail call i64 @llvm.hexagon.M2.mmachs.s1(i64 %8, i64 282574488406740992, i64 %7)
33   %16 = load i64, i64* null, align 8
34   %17 = tail call i64 @llvm.hexagon.M2.mmacls.s1(i64 %14, i64 27234903028652032, i64 %16)
35   %18 = tail call i64 @llvm.hexagon.M2.mmacls.s1(i64 undef, i64 27234903028652032, i64 %7)
36   %19 = tail call i64 @llvm.hexagon.M2.mmachs.s1(i64 %15, i64 7661056, i64 %7)
37   %_HEXAGON_V64_internal_union53.sroa.3.0.extract.shift = lshr i64 %17, 32
38   %_HEXAGON_V64_internal_union62.sroa.3.0.extract.shift = and i64 %18, -4294967296
39   %_HEXAGON_V64_internal_union71.sroa.0.0.insert.insert = or i64 %_HEXAGON_V64_internal_union62.sroa.3.0.extract.shift, %_HEXAGON_V64_internal_union53.sroa.3.0.extract.shift
40   %_HEXAGON_V64_internal_union79.sroa.4.0.insert.shift = shl i64 %19, 32
41   %_HEXAGON_V64_internal_union79.sroa.0.0.insert.ext = and i64 %11, 4294967295
42   %_HEXAGON_V64_internal_union79.sroa.0.0.insert.insert = or i64 %_HEXAGON_V64_internal_union79.sroa.4.0.insert.shift, %_HEXAGON_V64_internal_union79.sroa.0.0.insert.ext
43   %20 = bitcast i32* %subband to i64*
44   %21 = tail call i64 @llvm.hexagon.M2.mmpyh.s0(i64 %_HEXAGON_V64_internal_union71.sroa.0.0.insert.insert, i64 undef)
45   %22 = tail call i64 @llvm.hexagon.A2.vsubw(i64 undef, i64 %21)
46   %23 = tail call i64 @llvm.hexagon.A2.vaddw(i64 undef, i64 undef)
47   %24 = tail call i64 @llvm.hexagon.S2.asl.i.vw(i64 %23, i32 2)
48   %25 = tail call i64 @llvm.hexagon.M2.mmpyl.s0(i64 0, i64 undef)
49   %26 = tail call i64 @llvm.hexagon.S2.asl.i.vw(i64 %25, i32 2)
50   %27 = tail call i64 @llvm.hexagon.A2.vsubw(i64 undef, i64 %24)
51   %28 = tail call i64 @llvm.hexagon.A2.vaddw(i64 %26, i64 %_HEXAGON_V64_internal_union79.sroa.0.0.insert.insert)
52   %29 = tail call i64 @llvm.hexagon.M2.mmpyh.s0(i64 %28, i64 undef)
53   %30 = tail call i64 @llvm.hexagon.M2.mmpyl.s0(i64 %27, i64 3998767301)
54   %31 = tail call i64 @llvm.hexagon.S2.asl.i.vw(i64 %30, i32 2)
55   %32 = tail call i64 @llvm.hexagon.A2.vaddw(i64 undef, i64 %29)
56   %33 = tail call i64 @llvm.hexagon.A2.vaddw(i64 0, i64 %31)
57   %34 = tail call i64 @llvm.hexagon.A2.vaddw(i64 %22, i64 undef)
58   %_HEXAGON_V64_internal_union8.sroa.0.0.insert.ext.i = and i64 %32, 4294967295
59   store i64 %_HEXAGON_V64_internal_union8.sroa.0.0.insert.ext.i, i64* %20, align 8
60   %_HEXAGON_V64_internal_union17.sroa.5.0.insert.shift.i = shl i64 %34, 32
61   %_HEXAGON_V64_internal_union17.sroa.0.0.insert.ext.i = and i64 %33, 4294967295
62   %_HEXAGON_V64_internal_union17.sroa.0.0.insert.insert.i = or i64 %_HEXAGON_V64_internal_union17.sroa.5.0.insert.shift.i, %_HEXAGON_V64_internal_union17.sroa.0.0.insert.ext.i
63   %arrayidx31.i = getelementptr inbounds i32, i32* %subband, i32 2
64   %35 = bitcast i32* %arrayidx31.i to i64*
65   store i64 %_HEXAGON_V64_internal_union17.sroa.0.0.insert.insert.i, i64* %35, align 8
66   %_HEXAGON_V64_internal_union32.sroa.0.0.insert.ext.i = and i64 %23, 4294967295
67   %arrayidx46.i = getelementptr inbounds i32, i32* %subband, i32 4
68   %36 = bitcast i32* %arrayidx46.i to i64*
69   store i64 %_HEXAGON_V64_internal_union32.sroa.0.0.insert.ext.i, i64* %36, align 8
70   %arrayidx55.i = getelementptr inbounds i32, i32* %subband, i32 6
71   %37 = bitcast i32* %arrayidx55.i to i64*
72   store i64 0, i64* %37, align 8
73   %arrayidx64.i = getelementptr inbounds i32, i32* %subband, i32 8
74   %38 = bitcast i32* %arrayidx64.i to i64*
75   store i64 0, i64* %38, align 8
76   %arrayidx73.i = getelementptr inbounds i32, i32* %subband, i32 12
77   %39 = bitcast i32* %arrayidx73.i to i64*
78   store i64 0, i64* %39, align 8
79   ret void
82 ; Function Attrs: nounwind readnone
83 declare i64 @llvm.hexagon.S2.vtrunewh(i64, i64)
84 declare i64 @llvm.hexagon.S2.vtrunowh(i64, i64)
85 declare i64 @llvm.hexagon.M2.mmachs.s1(i64, i64, i64)
86 declare i64 @llvm.hexagon.M2.mmacls.s1(i64, i64, i64)
87 declare i64 @llvm.hexagon.M2.mmpyh.s0(i64, i64)
88 declare i64 @llvm.hexagon.A2.vsubw(i64, i64)
89 declare i64 @llvm.hexagon.A2.vaddw(i64, i64)
90 declare i64 @llvm.hexagon.S2.asl.i.vw(i64, i32)
91 declare i64 @llvm.hexagon.M2.mmpyl.s0(i64, i64)