brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.9 KiB · 4540216 Raw
437 lines · plain
1; RUN: llvm-as < %s | llvm-dis | FileCheck %s2 3; All fields with integer syntax4define void @nofpclass_1023(float nofpclass(1023) %x) {5; CHECK-LABEL: define {{[^@]+}}@nofpclass_10236; CHECK-SAME: (float nofpclass(all) [[X:%.*]]) {7; CHECK-NEXT:    ret void8;9  ret void10}11 12; --------------------------------------------------------------------13; Single field, integer syntax14; --------------------------------------------------------------------15 16define void @nofpclass_1(float nofpclass(1) %x) {17; CHECK-LABEL: define {{[^@]+}}@nofpclass_118; CHECK-SAME: (float nofpclass(snan) [[X:%.*]]) {19; CHECK-NEXT:    ret void20;21  ret void22}23 24define void @nofpclass_2(float nofpclass(2) %x) {25; CHECK-LABEL: define {{[^@]+}}@nofpclass_226; CHECK-SAME: (float nofpclass(qnan) [[X:%.*]]) {27; CHECK-NEXT:    ret void28;29  ret void30}31 32define void @nofpclass_3(float nofpclass(4) %x) {33; CHECK-LABEL: define {{[^@]+}}@nofpclass_334; CHECK-SAME: (float nofpclass(ninf) [[X:%.*]]) {35; CHECK-NEXT:    ret void36;37  ret void38}39 40define void @nofpclass_8(float nofpclass(8) %x) {41; CHECK-LABEL: define {{[^@]+}}@nofpclass_842; CHECK-SAME: (float nofpclass(nnorm) [[X:%.*]]) {43; CHECK-NEXT:    ret void44;45  ret void46}47 48define void @nofpclass_16(float nofpclass(16) %x) {49; CHECK-LABEL: define {{[^@]+}}@nofpclass_1650; CHECK-SAME: (float nofpclass(nsub) [[X:%.*]]) {51; CHECK-NEXT:    ret void52;53  ret void54}55 56define void @nofpclass_32(float nofpclass(32) %x) {57; CHECK-LABEL: define {{[^@]+}}@nofpclass_3258; CHECK-SAME: (float nofpclass(nzero) [[X:%.*]]) {59; CHECK-NEXT:    ret void60;61  ret void62}63 64define void @nofpclass_64(float nofpclass(64) %x) {65; CHECK-LABEL: define {{[^@]+}}@nofpclass_6466; CHECK-SAME: (float nofpclass(pzero) [[X:%.*]]) {67; CHECK-NEXT:    ret void68;69  ret void70}71 72define void @nofpclass_128(float nofpclass(128) %x) {73; CHECK-LABEL: define {{[^@]+}}@nofpclass_12874; CHECK-SAME: (float nofpclass(psub) [[X:%.*]]) {75; CHECK-NEXT:    ret void76;77  ret void78}79 80define void @nofpclass_256(float nofpclass(256) %x) {81; CHECK-LABEL: define {{[^@]+}}@nofpclass_25682; CHECK-SAME: (float nofpclass(pnorm) [[X:%.*]]) {83; CHECK-NEXT:    ret void84;85  ret void86}87 88define void @nofpclass_512(float nofpclass(512) %x) {89; CHECK-LABEL: define {{[^@]+}}@nofpclass_51290; CHECK-SAME: (float nofpclass(pinf) [[X:%.*]]) {91; CHECK-NEXT:    ret void92;93  ret void94}95 96define void @nofpclass_8_extra_space(float nofpclass(  8   ) %x) {97; CHECK-LABEL: define {{[^@]+}}@nofpclass_8_extra_space98; CHECK-SAME: (float nofpclass(nnorm) [[X:%.*]]) {99; CHECK-NEXT:    ret void100;101  ret void102}103 104; --------------------------------------------------------------------105; Canonical single field names106; --------------------------------------------------------------------107 108define void @nofpclass_snan(float nofpclass(snan) %x) {109; CHECK-LABEL: define {{[^@]+}}@nofpclass_snan110; CHECK-SAME: (float nofpclass(snan) [[X:%.*]]) {111; CHECK-NEXT:    ret void112;113  ret void114}115 116define void @nofpclass_qnan(float nofpclass(qnan) %x) {117; CHECK-LABEL: define {{[^@]+}}@nofpclass_qnan118; CHECK-SAME: (float nofpclass(qnan) [[X:%.*]]) {119; CHECK-NEXT:    ret void120;121  ret void122}123 124define void @nofpclass_ninf(float nofpclass(ninf) %x) {125; CHECK-LABEL: define {{[^@]+}}@nofpclass_ninf126; CHECK-SAME: (float nofpclass(ninf) [[X:%.*]]) {127; CHECK-NEXT:    ret void128;129  ret void130}131 132define void @nofpclass_nnorm(float nofpclass(nnorm) %x) {133; CHECK-LABEL: define {{[^@]+}}@nofpclass_nnorm134; CHECK-SAME: (float nofpclass(nnorm) [[X:%.*]]) {135; CHECK-NEXT:    ret void136;137  ret void138}139 140define void @nofpclass_nsub(float nofpclass(nsub) %x) {141; CHECK-LABEL: define {{[^@]+}}@nofpclass_nsub142; CHECK-SAME: (float nofpclass(nsub) [[X:%.*]]) {143; CHECK-NEXT:    ret void144;145  ret void146}147 148define void @nofpclass_nzero(float nofpclass(nzero) %x) {149; CHECK-LABEL: define {{[^@]+}}@nofpclass_nzero150; CHECK-SAME: (float nofpclass(nzero) [[X:%.*]]) {151; CHECK-NEXT:    ret void152;153  ret void154}155 156define void @nofpclass_pzero(float nofpclass(pzero) %x) {157; CHECK-LABEL: define {{[^@]+}}@nofpclass_pzero158; CHECK-SAME: (float nofpclass(pzero) [[X:%.*]]) {159; CHECK-NEXT:    ret void160;161  ret void162}163 164define void @nofpclass_psub(float nofpclass(psub) %x) {165; CHECK-LABEL: define {{[^@]+}}@nofpclass_psub166; CHECK-SAME: (float nofpclass(psub) [[X:%.*]]) {167; CHECK-NEXT:    ret void168;169  ret void170}171 172define void @nofpclass_pnorm(float nofpclass(pnorm) %x) {173; CHECK-LABEL: define {{[^@]+}}@nofpclass_pnorm174; CHECK-SAME: (float nofpclass(pnorm) [[X:%.*]]) {175; CHECK-NEXT:    ret void176;177  ret void178}179 180define void @nofpclass_pinf(float nofpclass(pinf) %x) {181; CHECK-LABEL: define {{[^@]+}}@nofpclass_pinf182; CHECK-SAME: (float nofpclass(pinf) [[X:%.*]]) {183; CHECK-NEXT:    ret void184;185  ret void186}187 188; --------------------------------------------------------------------189; Pretty printed pairs190; --------------------------------------------------------------------191 192define void @nofpclass_nan(float nofpclass(nan) %x) {193; CHECK-LABEL: define {{[^@]+}}@nofpclass_nan194; CHECK-SAME: (float nofpclass(nan) [[X:%.*]]) {195; CHECK-NEXT:    ret void196;197  ret void198}199 200define void @nofpclass_inf(float nofpclass(inf) %x) {201; CHECK-LABEL: define {{[^@]+}}@nofpclass_inf202; CHECK-SAME: (float nofpclass(inf) [[X:%.*]]) {203; CHECK-NEXT:    ret void204;205  ret void206}207 208define void @nofpclass_norm(float nofpclass(norm) %x) {209; CHECK-LABEL: define {{[^@]+}}@nofpclass_norm210; CHECK-SAME: (float nofpclass(norm) [[X:%.*]]) {211; CHECK-NEXT:    ret void212;213  ret void214}215 216define void @nofpclass_sub(float nofpclass(sub) %x) {217; CHECK-LABEL: define {{[^@]+}}@nofpclass_sub218; CHECK-SAME: (float nofpclass(sub) [[X:%.*]]) {219; CHECK-NEXT:    ret void220;221  ret void222}223 224define void @nofpclass_zero(float nofpclass(zero) %x) {225; CHECK-LABEL: define {{[^@]+}}@nofpclass_zero226; CHECK-SAME: (float nofpclass(zero) [[X:%.*]]) {227; CHECK-NEXT:    ret void228;229  ret void230}231 232; --------------------------------------------------------------------233; Special helper names234; --------------------------------------------------------------------235 236define void @nofpclass_all(float nofpclass(all) %x) {237; CHECK-LABEL: define {{[^@]+}}@nofpclass_all238; CHECK-SAME: (float nofpclass(all) [[X:%.*]]) {239; CHECK-NEXT:    ret void240;241  ret void242}243 244; --------------------------------------------------------------------245; Return position246; --------------------------------------------------------------------247 248define nofpclass(nan) float @return_nan(float %arg) {249; CHECK-LABEL: define {{[^@]+}}@return_nan250; CHECK-SAME: (float [[ARG:%.*]]) {251; CHECK-NEXT:    ret float [[ARG]]252;253  ret float %arg254}255 256; --------------------------------------------------------------------257; Callsite positions258; --------------------------------------------------------------------259 260declare float @func(float)261 262define float @callsite_nofpclass_arg(float %arg) {263; CHECK-LABEL: define {{[^@]+}}@callsite_nofpclass_arg264; CHECK-SAME: (float [[ARG:%.*]]) {265; CHECK-NEXT:    [[CALL:%.*]] = call float @func(float nofpclass(nan) [[ARG]])266; CHECK-NEXT:    ret float [[CALL]]267;268  %call = call float @func(float nofpclass(nan) %arg)269  ret float %call270}271 272define float @callsite_nofpclass_return(float %arg) {273; CHECK-LABEL: define {{[^@]+}}@callsite_nofpclass_return274; CHECK-SAME: (float [[ARG:%.*]]) {275; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @func(float [[ARG]])276; CHECK-NEXT:    ret float [[CALL]]277;278  %call = call nofpclass(nan) float @func(float %arg)279  ret float %call280}281 282; --------------------------------------------------------------------283; Declaration284; --------------------------------------------------------------------285 286declare nofpclass(inf) float @declaration(float nofpclass(zero))287 288; --------------------------------------------------------------------289; Combinations of named values290; --------------------------------------------------------------------291 292define void @nofpclass_nan_inf(float nofpclass(nan inf) %x) {293; CHECK-LABEL: define {{[^@]+}}@nofpclass_nan_inf294; CHECK-SAME: (float nofpclass(nan inf) [[X:%.*]]) {295; CHECK-NEXT:    ret void296;297  ret void298}299 300define void @nofpclass_inf_nan(float nofpclass(inf nan) %x) {301; CHECK-LABEL: define {{[^@]+}}@nofpclass_inf_nan302; CHECK-SAME: (float nofpclass(nan inf) [[X:%.*]]) {303; CHECK-NEXT:    ret void304;305  ret void306}307 308define void @nofpclass_nan_qnan_snan(float nofpclass(nan qnan snan) %x) {309; CHECK-LABEL: define {{[^@]+}}@nofpclass_nan_qnan_snan310; CHECK-SAME: (float nofpclass(nan) [[X:%.*]]) {311; CHECK-NEXT:    ret void312;313  ret void314}315 316define void @nofpclass_snan_qnan_nan(float nofpclass(snan qnan nan) %x) {317; CHECK-LABEL: define {{[^@]+}}@nofpclass_snan_qnan_nan318; CHECK-SAME: (float nofpclass(nan) [[X:%.*]]) {319; CHECK-NEXT:    ret void320;321  ret void322}323 324define void @nofpclass_all_pairs_named(float nofpclass(nan inf norm sub zero) %x) {325; CHECK-LABEL: define {{[^@]+}}@nofpclass_all_pairs_named326; CHECK-SAME: (float nofpclass(all) [[X:%.*]]) {327; CHECK-NEXT:    ret void328;329  ret void330}331 332define void @nofpclass_all_pairs_named_reverse(float nofpclass(zero sub norm inf nan) %x) {333; CHECK-LABEL: define {{[^@]+}}@nofpclass_all_pairs_named_reverse334; CHECK-SAME: (float nofpclass(all) [[X:%.*]]) {335; CHECK-NEXT:    ret void336;337  ret void338}339 340define void @nofpclass_all_pairs_named_shuffle0(float nofpclass(sub nan norm zero inf) %x) {341; CHECK-LABEL: define {{[^@]+}}@nofpclass_all_pairs_named_shuffle0342; CHECK-SAME: (float nofpclass(all) [[X:%.*]]) {343; CHECK-NEXT:    ret void344;345  ret void346}347 348define void @nofpclass_all_fields_named(float nofpclass(snan qnan ninf pinf nnorm pnorm nsub psub nzero pzero) %x) {349; CHECK-LABEL: define {{[^@]+}}@nofpclass_all_fields_named350; CHECK-SAME: (float nofpclass(all) [[X:%.*]]) {351; CHECK-NEXT:    ret void352;353  ret void354}355 356define void @nofpclass_all_fields_named_reverse(float nofpclass(pzero nzero psub nsub pnorm nnorm pinf ninf qnan snan) %x) {357; CHECK-LABEL: define {{[^@]+}}@nofpclass_all_fields_named_reverse358; CHECK-SAME: (float nofpclass(all) [[X:%.*]]) {359; CHECK-NEXT:    ret void360;361  ret void362}363 364define void @nofpclass_snan_ninf(float nofpclass(snan ninf) %x) {365; CHECK-LABEL: define {{[^@]+}}@nofpclass_snan_ninf366; CHECK-SAME: (float nofpclass(snan ninf) [[X:%.*]]) {367; CHECK-NEXT:    ret void368;369  ret void370}371 372define void @nofpclass_ninf_snan(float nofpclass(ninf  snan) %x) {373; CHECK-LABEL: define {{[^@]+}}@nofpclass_ninf_snan374; CHECK-SAME: (float nofpclass(snan ninf) [[X:%.*]]) {375; CHECK-NEXT:    ret void376;377  ret void378}379 380; --------------------------------------------------------------------381; Supported IR types382; --------------------------------------------------------------------383 384; Vector FP385define void @nofpclass_nan_inf_v2f16(<2 x half> nofpclass(nan inf) %x) {386; CHECK-LABEL: define {{[^@]+}}@nofpclass_nan_inf_v2f16387; CHECK-SAME: (<2 x half> nofpclass(nan inf) [[X:%.*]]) {388; CHECK-NEXT:    ret void389;390  ret void391}392 393; Scalable Vector FP394define void @nofpclass_nan_inf_scalable_v2f16(<vscale x 2 x half> nofpclass(nan inf) %x) {395; CHECK-LABEL: define {{[^@]+}}@nofpclass_nan_inf_scalable_v2f16396; CHECK-SAME: (<vscale x 2 x half> nofpclass(nan inf) [[X:%.*]]) {397; CHECK-NEXT:    ret void398;399  ret void400}401 402; Array of scalar FP403define void @nofpclass_nan_inf_a4f64([4 x double] nofpclass(nan inf) %x) {404; CHECK-LABEL: define {{[^@]+}}@nofpclass_nan_inf_a4f64405; CHECK-SAME: ([4 x double] nofpclass(nan inf) [[X:%.*]]) {406; CHECK-NEXT:    ret void407;408  ret void409}410 411; Array of vector FP412define void @nofpclass_nan_inf_a4v2f16([4 x <2 x half>] nofpclass(nan inf) %x) {413; CHECK-LABEL: define {{[^@]+}}@nofpclass_nan_inf_a4v2f16414; CHECK-SAME: ([4 x <2 x half>] nofpclass(nan inf) [[X:%.*]]) {415; CHECK-NEXT:    ret void416;417  ret void418}419 420; Array of array of scalar FP421define void @nofpclass_nan_inf_a8a4f32([8 x [4 x float]] nofpclass(nan inf) %x) {422; CHECK-LABEL: define {{[^@]+}}@nofpclass_nan_inf_a8a4f32423; CHECK-SAME: ([8 x [4 x float]] nofpclass(nan inf) [[X:%.*]]) {424; CHECK-NEXT:    ret void425;426  ret void427}428 429; Array of array of vector FP430define void @nofpclass_nan_inf_a8a4v2f32([8 x [4 x <2 x float>]] nofpclass(nan inf) %x) {431; CHECK-LABEL: define {{[^@]+}}@nofpclass_nan_inf_a8a4v2f32432; CHECK-SAME: ([8 x [4 x <2 x float>]] nofpclass(nan inf) [[X:%.*]]) {433; CHECK-NEXT:    ret void434;435  ret void436}437