brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 89b3b89 Raw
41 lines · plain
1; RUN: llc < %s | FileCheck %s2 3; This test checks that we do not merge stores together which have4; dependencies through their non-chain operands (e.g. one store is the5; chain ancestor of a load whose value is used in as the data for the6; other store). Merging in such cases creates a loop in the DAG.7 8target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"9target triple = "aarch64--linux-android"10 11%"class.std::__1::complex.0.20.56.60.64.72.76.88.92.112.140.248" = type { float, float }12 13; Function Attrs: noinline norecurse nounwind ssp uwtable14define void @fn(ptr %argA, ptr %argB, ptr %a) #0 align 2 {15  %_p_vec_full = load <2 x i64>, ptr %argA, align 4, !alias.scope !9, !noalias !316  %x = extractelement <2 x i64> %_p_vec_full, i32 117  store i64 %x, ptr %a, align 8, !alias.scope !3, !noalias !918  %_p_vec_full155 = load <2 x i64>, ptr %argB, align 4, !alias.scope !9, !noalias !319  %y = extractelement <2 x i64> %_p_vec_full155, i32 020  %scevgep41 = getelementptr i64, ptr %a, i64 -121  store i64 %y, ptr %scevgep41, align 8, !alias.scope !3, !noalias !922  ret void23}24 25; CHECK: ret26 27attributes #0 = { noinline norecurse nounwind ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "polly-optimized" "stack-protector-buffer-size"="8" "target-features"="+crc,+crypto,+neon" "use-soft-float"="false" }28 29!llvm.ident = !{!0}30 31!0 = !{!"Snapdragon LLVM ARM Compiler 3.8.0 (based on LLVM 3.8.0)"}32!1 = distinct !{!1, !2, !"polly.alias.scope.rhs"}33!2 = distinct !{!2, !"polly.alias.scope.domain"}34!3 = !{!4, !5, !6, !7, !8}35!4 = distinct !{!4, !2, !"polly.alias.scope.blockB"}36!5 = distinct !{!5, !2, !"polly.alias.scope.add28.lcssa.reg2mem"}37!6 = distinct !{!6, !2, !"polly.alias.scope.count.0.lcssa.reg2mem"}38!7 = distinct !{!7, !2, !"polly.alias.scope.mul"}39!8 = distinct !{!8, !2, !"polly.alias.scope.add28.us.lcssa.reg2mem"}40!9 = !{!1, !5, !6, !7, !8}41