19692811bSAlex Richardson; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature
29692811bSAlex Richardson; Test that update_test_checks.py can run pre-processing commands.
3*40760060SBjorn Pettersson; RUN: opt < %s -passes=instsimplify -S | FileCheck %s --check-prefix=CHECK-AS200
49692811bSAlex Richardson; RUN: sed -e 's/addrspace(200)/addrspace(0)/g' -e 's/-A200-P200-G200//g' %s \
5*40760060SBjorn Pettersson; RUN:   | opt -passes=instsimplify -S | FileCheck %s --check-prefix=CHECK-AS0
69692811bSAlex Richardson; Check that multiple pre-processing commands are handled
79692811bSAlex Richardson; RUN: sed 's/addrspace(200)/addrspace(1)/g' %s | sed 's/-A1-P1-G1//g' \
8*40760060SBjorn Pettersson; RUN:   | opt -passes=instsimplify -S | FileCheck %s --check-prefix=CHECK-AS1
99692811bSAlex Richardson; More than two commands should also be fine
10*40760060SBjorn Pettersson; RUN: cat %s | cat | cat | cat | opt < %s -passes=instsimplify -S \
119692811bSAlex Richardson; RUN:   | FileCheck %s --check-prefix=CHECK-AS200-NOOP-PRE-PROCESS
129692811bSAlex Richardson
139692811bSAlex Richardsontarget datalayout = "e-m:e-p200:128:128:128:64-p:64:64-A200-P200-G200"
149692811bSAlex Richardson
159692811bSAlex Richardsondefine i8 addrspace(200)* @test_zerogep_in_different_as(i8 addrspace(200)* %arg) addrspace(200) nounwind {
169692811bSAlex Richardson; CHECK-AS200-LABEL: define {{[^@]+}}@test_zerogep_in_different_as
179692811bSAlex Richardson; CHECK-AS200-SAME: (i8 addrspace(200)* [[ARG:%.*]]) addrspace(200) #[[ATTR0:[0-9]+]] {
189692811bSAlex Richardson; CHECK-AS200-NEXT:  entry:
199692811bSAlex Richardson; CHECK-AS200-NEXT:    ret i8 addrspace(200)* [[ARG]]
209692811bSAlex Richardson;
219692811bSAlex Richardson; CHECK-AS0-LABEL: define {{[^@]+}}@test_zerogep_in_different_as
229692811bSAlex Richardson; CHECK-AS0-SAME: (i8* [[ARG:%.*]]) #[[ATTR0:[0-9]+]] {
239692811bSAlex Richardson; CHECK-AS0-NEXT:  entry:
249692811bSAlex Richardson; CHECK-AS0-NEXT:    ret i8* [[ARG]]
259692811bSAlex Richardson;
269692811bSAlex Richardson; CHECK-AS1-LABEL: define {{[^@]+}}@test_zerogep_in_different_as
279692811bSAlex Richardson; CHECK-AS1-SAME: (i8 addrspace(1)* [[ARG:%.*]]) addrspace(1) #[[ATTR0:[0-9]+]] {
289692811bSAlex Richardson; CHECK-AS1-NEXT:  entry:
299692811bSAlex Richardson; CHECK-AS1-NEXT:    ret i8 addrspace(1)* [[ARG]]
309692811bSAlex Richardson;
319692811bSAlex Richardson; CHECK-AS200-NOOP-PRE-PROCESS-LABEL: define {{[^@]+}}@test_zerogep_in_different_as
329692811bSAlex Richardson; CHECK-AS200-NOOP-PRE-PROCESS-SAME: (i8 addrspace(200)* [[ARG:%.*]]) addrspace(200) #[[ATTR0:[0-9]+]] {
339692811bSAlex Richardson; CHECK-AS200-NOOP-PRE-PROCESS-NEXT:  entry:
349692811bSAlex Richardson; CHECK-AS200-NOOP-PRE-PROCESS-NEXT:    ret i8 addrspace(200)* [[ARG]]
359692811bSAlex Richardson;
369692811bSAlex Richardsonentry:
379692811bSAlex Richardson  %ret = getelementptr inbounds i8, i8 addrspace(200)* %arg, i64 0
389692811bSAlex Richardson  ret i8 addrspace(200)* %ret
399692811bSAlex Richardson}
40