brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.4 KiB · 11752f8 Raw
117 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -mtriple=x86_64-apple-macosx10.7 -passes=inferattrs,dse -S %s | FileCheck %s3 4; Tests for libcalls only available on Darwin platforms.5 6declare void @memset_pattern4(ptr, ptr, i64)7declare void @memset_pattern8(ptr, ptr, i64)8declare void @memset_pattern16(ptr, ptr, i64)9 10define void @test_memset_pattern4_const_size(ptr noalias %a, ptr noalias %pattern) {11; CHECK-LABEL: @test_memset_pattern4_const_size(12; CHECK-NEXT:  entry:13; CHECK-NEXT:    [[A_GEP_17:%.*]] = getelementptr i8, ptr [[A:%.*]], i32 1714; CHECK-NEXT:    store i8 1, ptr [[A_GEP_17]], align 115; CHECK-NEXT:    call void @memset_pattern4(ptr [[A]], ptr [[PATTERN:%.*]], i64 17)16; CHECK-NEXT:    ret void17;18entry:19  %a.gep.1 = getelementptr i8, ptr %a, i32 120  store i8 0, ptr %a.gep.121  %a.gep.17 = getelementptr i8, ptr %a, i32 1722  store i8 1, ptr %a.gep.1723  call void @memset_pattern4(ptr %a, ptr %pattern, i64 17)24  ret void25}26 27define void @test_memset_pattern4_variable_size(ptr noalias %a, ptr noalias %pattern, i64 %n) {28; CHECK-LABEL: @test_memset_pattern4_variable_size(29; CHECK-NEXT:  entry:30; CHECK-NEXT:    [[A_GEP_1:%.*]] = getelementptr i8, ptr [[A:%.*]], i32 131; CHECK-NEXT:    store i8 0, ptr [[A_GEP_1]], align 132; CHECK-NEXT:    [[A_GEP_17:%.*]] = getelementptr i8, ptr [[A]], i32 1733; CHECK-NEXT:    store i8 1, ptr [[A_GEP_17]], align 134; CHECK-NEXT:    call void @memset_pattern4(ptr [[A]], ptr [[PATTERN:%.*]], i64 [[N:%.*]])35; CHECK-NEXT:    ret void36;37entry:38  %a.gep.1 = getelementptr i8, ptr %a, i32 139  store i8 0, ptr %a.gep.140  %a.gep.17 = getelementptr i8, ptr %a, i32 1741  store i8 1, ptr %a.gep.1742  call void @memset_pattern4(ptr %a, ptr %pattern, i64 %n)43  ret void44}45 46define void @test_memset_pattern8_const_size(ptr noalias %a, ptr noalias %pattern) {47; CHECK-LABEL: @test_memset_pattern8_const_size(48; CHECK-NEXT:  entry:49; CHECK-NEXT:    [[A_GEP_17:%.*]] = getelementptr i8, ptr [[A:%.*]], i32 1750; CHECK-NEXT:    store i8 1, ptr [[A_GEP_17]], align 151; CHECK-NEXT:    call void @memset_pattern8(ptr [[A]], ptr [[PATTERN:%.*]], i64 17)52; CHECK-NEXT:    ret void53;54entry:55  %a.gep.1 = getelementptr i8, ptr %a, i32 156  store i8 0, ptr %a.gep.157  %a.gep.17 = getelementptr i8, ptr %a, i32 1758  store i8 1, ptr %a.gep.1759  call void @memset_pattern8(ptr %a, ptr %pattern, i64 17)60  ret void61}62 63define void @test_memset_pattern8_variable_size(ptr noalias %a, ptr noalias %pattern, i64 %n) {64; CHECK-LABEL: @test_memset_pattern8_variable_size(65; CHECK-NEXT:  entry:66; CHECK-NEXT:    [[A_GEP_1:%.*]] = getelementptr i8, ptr [[A:%.*]], i32 167; CHECK-NEXT:    store i8 0, ptr [[A_GEP_1]], align 168; CHECK-NEXT:    [[A_GEP_17:%.*]] = getelementptr i8, ptr [[A]], i32 1769; CHECK-NEXT:    store i8 1, ptr [[A_GEP_17]], align 170; CHECK-NEXT:    call void @memset_pattern8(ptr [[A]], ptr [[PATTERN:%.*]], i64 [[N:%.*]])71; CHECK-NEXT:    ret void72;73entry:74  %a.gep.1 = getelementptr i8, ptr %a, i32 175  store i8 0, ptr %a.gep.176  %a.gep.17 = getelementptr i8, ptr %a, i32 1777  store i8 1, ptr %a.gep.1778  call void @memset_pattern8(ptr %a, ptr %pattern, i64 %n)79  ret void80}81 82define void @test_memset_pattern16_const_size(ptr noalias %a, ptr noalias %pattern) {83; CHECK-LABEL: @test_memset_pattern16_const_size(84; CHECK-NEXT:  entry:85; CHECK-NEXT:    [[A_GEP_17:%.*]] = getelementptr i8, ptr [[A:%.*]], i32 1786; CHECK-NEXT:    store i8 1, ptr [[A_GEP_17]], align 187; CHECK-NEXT:    call void @memset_pattern16(ptr [[A]], ptr [[PATTERN:%.*]], i64 17)88; CHECK-NEXT:    ret void89;90entry:91  %a.gep.1 = getelementptr i8, ptr %a, i32 192  store i8 0, ptr %a.gep.193  %a.gep.17 = getelementptr i8, ptr %a, i32 1794  store i8 1, ptr %a.gep.1795  call void @memset_pattern16(ptr %a, ptr %pattern, i64 17)96  ret void97}98 99define void @test_memset_pattern16_variable_size(ptr noalias %a, ptr noalias %pattern, i64 %n) {100; CHECK-LABEL: @test_memset_pattern16_variable_size(101; CHECK-NEXT:  entry:102; CHECK-NEXT:    [[A_GEP_1:%.*]] = getelementptr i8, ptr [[A:%.*]], i32 1103; CHECK-NEXT:    store i8 0, ptr [[A_GEP_1]], align 1104; CHECK-NEXT:    [[A_GEP_17:%.*]] = getelementptr i8, ptr [[A]], i32 17105; CHECK-NEXT:    store i8 1, ptr [[A_GEP_17]], align 1106; CHECK-NEXT:    call void @memset_pattern16(ptr [[A]], ptr [[PATTERN:%.*]], i64 [[N:%.*]])107; CHECK-NEXT:    ret void108;109entry:110  %a.gep.1 = getelementptr i8, ptr %a, i32 1111  store i8 0, ptr %a.gep.1112  %a.gep.17 = getelementptr i8, ptr %a, i32 17113  store i8 1, ptr %a.gep.17114  call void @memset_pattern16(ptr %a, ptr %pattern, i64 %n)115  ret void116}117