brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.0 KiB · b60f6c3 Raw
129 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 32; RUN: opt < %s -passes=gvn -S | FileCheck %s3 4define i1 @test_i1(ptr %a, ptr %b, ptr %c) {5; CHECK-LABEL: define i1 @test_i1(6; CHECK-SAME: ptr [[A:%.*]], ptr [[B:%.*]], ptr [[C:%.*]]) {7; CHECK-NEXT:  entry:8; CHECK-NEXT:    [[TMP0:%.*]] = load i1, ptr [[A]], align 19; CHECK-NEXT:    store i1 [[TMP0]], ptr [[B]], align 110; CHECK-NEXT:    ret i1 [[TMP0]]11;12entry:13  %0 = load i1, ptr %a, align 114  store i1 %0, ptr %b, align 115  %1 = load i1, ptr %a, align 116  ret i1 %117}18 19define i8 @test_i8(ptr %a, ptr %b, ptr %c) {20; CHECK-LABEL: define i8 @test_i8(21; CHECK-SAME: ptr [[A:%.*]], ptr [[B:%.*]], ptr [[C:%.*]]) {22; CHECK-NEXT:  entry:23; CHECK-NEXT:    [[TMP0:%.*]] = load i8, ptr [[A]], align 124; CHECK-NEXT:    store i8 [[TMP0]], ptr [[B]], align 125; CHECK-NEXT:    ret i8 [[TMP0]]26;27entry:28  %0 = load i8, ptr %a, align 129  store i8 %0, ptr %b, align 130  %1 = load i8, ptr %a, align 131  ret i8 %132}33 34define i32 @test_i32(ptr %a, ptr %b, ptr %c) {35; CHECK-LABEL: define i32 @test_i32(36; CHECK-SAME: ptr [[A:%.*]], ptr [[B:%.*]], ptr [[C:%.*]]) {37; CHECK-NEXT:  entry:38; CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr [[A]], align 439; CHECK-NEXT:    store i32 [[TMP0]], ptr [[B]], align 440; CHECK-NEXT:    ret i32 [[TMP0]]41;42entry:43  %0 = load i32, ptr %a, align 444  store i32 %0, ptr %b, align 445  %1 = load i32, ptr %a, align 446  ret i32 %147}48 49define float @test_float(ptr %a, ptr %b, ptr %c) {50; CHECK-LABEL: define float @test_float(51; CHECK-SAME: ptr [[A:%.*]], ptr [[B:%.*]], ptr [[C:%.*]]) {52; CHECK-NEXT:  entry:53; CHECK-NEXT:    [[TMP0:%.*]] = load float, ptr [[A]], align 454; CHECK-NEXT:    store float [[TMP0]], ptr [[B]], align 455; CHECK-NEXT:    ret float [[TMP0]]56;57entry:58  %0 = load float, ptr %a, align 459  store float %0, ptr %b, align 460  %1 = load float, ptr %a, align 461  ret float %162}63 64define i32 @test_unaligned_store(ptr %a, ptr %b, ptr %c) {65; CHECK-LABEL: define i32 @test_unaligned_store(66; CHECK-SAME: ptr [[A:%.*]], ptr [[B:%.*]], ptr [[C:%.*]]) {67; CHECK-NEXT:  entry:68; CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr [[A]], align 469; CHECK-NEXT:    store i32 [[TMP0]], ptr [[B]], align 270; CHECK-NEXT:    [[TMP1:%.*]] = load i32, ptr [[A]], align 471; CHECK-NEXT:    ret i32 [[TMP1]]72;73entry:74  %0 = load i32, ptr %a, align 475  store i32 %0, ptr %b, align 276  %1 = load i32, ptr %a, align 477  ret i32 %178}79 80define i32 @test_unaligned_loads(ptr %a, ptr %b, ptr %c) {81; CHECK-LABEL: define i32 @test_unaligned_loads(82; CHECK-SAME: ptr [[A:%.*]], ptr [[B:%.*]], ptr [[C:%.*]]) {83; CHECK-NEXT:  entry:84; CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr [[A]], align 285; CHECK-NEXT:    store i32 [[TMP0]], ptr [[B]], align 486; CHECK-NEXT:    [[TMP1:%.*]] = load i32, ptr [[A]], align 287; CHECK-NEXT:    ret i32 [[TMP1]]88;89entry:90  %0 = load i32, ptr %a, align 291  store i32 %0, ptr %b, align 492  %1 = load i32, ptr %a, align 293  ret i32 %194}95 96define i8 @test_modify_between(ptr %a, ptr %b, ptr %c) {97; CHECK-LABEL: define i8 @test_modify_between(98; CHECK-SAME: ptr [[A:%.*]], ptr [[B:%.*]], ptr [[C:%.*]]) {99; CHECK-NEXT:  entry:100; CHECK-NEXT:    [[TMP0:%.*]] = load i8, ptr [[A]], align 1101; CHECK-NEXT:    store i8 42, ptr [[C]], align 1102; CHECK-NEXT:    store i8 [[TMP0]], ptr [[B]], align 1103; CHECK-NEXT:    [[TMP1:%.*]] = load i8, ptr [[A]], align 1104; CHECK-NEXT:    ret i8 [[TMP1]]105;106entry:107  %0 = load i8, ptr %a, align 1108  store i8 42, ptr %c, align 1109  store i8 %0, ptr %b, align 1110  %1 = load i8, ptr %a, align 1111  ret i8 %1112}113 114define i32 @test_unordered(ptr %a, ptr %b, ptr %c) {115; CHECK-LABEL: define i32 @test_unordered(116; CHECK-SAME: ptr [[A:%.*]], ptr [[B:%.*]], ptr [[C:%.*]]) {117; CHECK-NEXT:  entry:118; CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr [[A]], align 4119; CHECK-NEXT:    store i32 [[TMP0]], ptr [[B]], align 4120; CHECK-NEXT:    [[TMP1:%.*]] = load atomic i32, ptr [[A]] unordered, align 4121; CHECK-NEXT:    ret i32 [[TMP1]]122;123entry:124  %0 = load i32, ptr %a, align 4125  store i32 %0, ptr %b, align 4126  %1 = load atomic i32, ptr %a unordered, align 4127  ret i32 %1128}129