brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · d04dbe9 Raw
31 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=riscv64 -mattr=+zbb,+v | FileCheck %s3 4; This test loads to values and stores them in reversed order. This previously5; asserted because part of DAGCombiner::tryStoreMerge thinks we can use an i646; rotate, but the loads aren't sufficiently aligned. So then it tried to use7; a vector type, but that can't handle the swapped case.8 9@foo = global [2 x i32] zeroinitializer, align 410@bar = global [2 x i32] zeroinitializer, align 411 12define void @baz() nounwind {13; CHECK-LABEL: baz:14; CHECK:       # %bb.0: # %entry15; CHECK-NEXT:    lui a0, %hi(foo)16; CHECK-NEXT:    addi a0, a0, %lo(foo)17; CHECK-NEXT:    lw a1, 4(a0)18; CHECK-NEXT:    lw a0, 0(a0)19; CHECK-NEXT:    lui a2, %hi(bar)20; CHECK-NEXT:    addi a2, a2, %lo(bar)21; CHECK-NEXT:    sw a1, 0(a2)22; CHECK-NEXT:    sw a0, 4(a2)23; CHECK-NEXT:    ret24entry:25  %0 = load i32, ptr getelementptr inbounds ([2 x i32], ptr @foo, i64 0, i64 1), align 426  store i32 %0, ptr @bar, align 427  %1 = load i32, ptr @foo, align 428  store i32 %1, ptr getelementptr inbounds ([2 x i32], ptr @bar, i64 0, i64 1), align 429  ret void30}31