|  | ; RUN: llc -mtriple=amdgcn -mcpu=gfx1250 -mattr=+wavefrontsize32 -stop-after=amdgpu-remove-incompatible-functions\ | 
|  | ; RUN:   -pass-remarks=amdgpu-remove-incompatible-functions < %s 2>%t | FileCheck -check-prefixes=GFX1250 %s | 
|  | ; RUN: FileCheck --check-prefix=WARN-GFX1250 %s < %t | 
|  | ; RUN: llc -mtriple=amdgcn -mcpu=gfx1250 -mattr=+wavefrontsize32 < %s | 
|  |  | 
|  | ; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,-wavefrontsize64 -stop-after=amdgpu-remove-incompatible-functions\ | 
|  | ; RUN:   -pass-remarks=amdgpu-remove-incompatible-functions < %s 2>%t | FileCheck -check-prefixes=GFX1200 %s | 
|  | ; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,-wavefrontsize64 < %s | 
|  |  | 
|  | ; WARN-GFX1250: removing function 'needs_wavefrontsize64': +wavefrontsize64 is not supported on the current target | 
|  | ; WARN-GFX1250-NOT: not supported | 
|  |  | 
|  | define void @needs_wavefrontsize64(ptr %out) #0 { | 
|  | ; GFX1250-NOT:  @needs_wavefrontsize64 | 
|  | ; GFX1200:      define void @needs_wavefrontsize64( | 
|  | %1 = tail call i64 @llvm.read_register.i64(metadata !0) | 
|  | %2 = tail call i64 @llvm.ctpop.i64(i64 %1) | 
|  | store i64 %2, ptr %out, align 4 | 
|  | ret void | 
|  | } | 
|  |  | 
|  | define void @caller(ptr %out) { | 
|  | ; GFX1250: call void null( | 
|  | ; GFX1200: call void @needs_wavefrontsize64( | 
|  | call void @needs_wavefrontsize64(ptr %out) | 
|  | ret void | 
|  | } | 
|  |  | 
|  | declare i64 @llvm.read_register.i64(metadata) | 
|  | declare i64 @llvm.ctpop.i64(i64) | 
|  |  | 
|  | !0 = !{!"exec"} | 
|  |  | 
|  | attributes #0 = { "target-features"="+wavefrontsize64" } |